Mysql
 sql >> база данни >  >> RDS >> Mysql

Да се ​​преведе ли MySQL join в синтаксис на 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

Това е начинът, по който трябва да го направите в SQL Server. Прави „последно/първо/макс./мин./най-голямо-n-на група“ лесно като пай.

PARTITION BY ключовата дума тук е равна на вашето GROUP BY оператора и ORDER BY тук ще се преведе в MAX агрегатна функция, която сте използвали в MySQL

Използването на това ще ви позволи да правите някои фантастични неща като:

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. MySQL ЗАРЕЖДАНЕ НА ДАННИ ЛОКАЛЕН ИНФАЙЛ Python

  2. Предупреждение:mysql_error():предоставеният аргумент не е валиден ресурс на MySQL-Link

  3. Wordnet SQL обяснение

  4. Rails:mysql и postgres едновременно в едно и също приложение?

  5. Защо MySQL отчита синтактична грешка при FULL OUTER JOIN?