Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Terjemahkan MySQL bergabung ke sintaks SQL Server?

WITH Data AS
(
 SELECT ROW_NUMBER() OVER (PARTITION BY ID ORDER BY Date DESC) AS Row_Number,
 ID,
 AverageValue
 FROM Table
)
SELECT * FROM Data WHERE Row_Number = 1

Ini adalah cara yang harus Anda lakukan di SQL Server. Itu membuat "last/first/max/min/greatest-n-per grup" semudah pie.

PARTITION BY kata kunci di sini sama dengan GROUP BY Anda pernyataan, dan ORDER BY di sini akan diterjemahkan ke dalam MAX fungsi agregat yang Anda gunakan di MySQL

Menggunakan ini akan memungkinkan Anda untuk melakukan beberapa hal mewah seperti:

WITH Data AS
    (
     SELECT ROW_NUMBER() OVER (PARTITION BY ID ORDER BY Date DESC) AS Row_Number,
     ID,
     AverageValue
     FROM Table
    )

SELECT Newest.ID, 
Newest.AverageValue, 
(Newest.AverageValue - Next_Newest.AverageValue) AS AverageValue_Change,
Newest.Date
 FROM Data Newest
LEFT OUTER JOIN Data Next_Newest 
 ON Newest.Row_Number+1 = Next_Newest.Row_Number
AND Newest.ID = Next_Newest.ID 

WHERE Newest.Row_Number=1


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengkonfigurasi Spring boot Docker dan Mysql

  2. Tambahkan bidang tersembunyi khusus dalam bentuk paypal dan dapatkan di halaman yang dialihkan

  3. Matikan kueri MySQL saat pengguna dibatalkan

  4. apakah browser melindungi alamat IP pengguna?

  5. Backup Best Practices untuk MySQL, MariaDB dan Galera Cluster