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 सर्वर में करना चाहिए। यह पाई के रूप में "अंतिम/प्रथम/अधिकतम/मिनट/महानतम-एन-प्रति समूह" को आसान बनाता है।
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