SELECT t.*
FROM (
SELECT DISTINCT groupid
FROM mytable
) mo
CROSS APPLY
(
SELECT TOP 1 *
FROM mytable mi
WHERE mi.groupid = mo.groupid
ORDER BY
age DESC
) t
या यह:
SELECT *
FROM (
SELECT *, ROW_NUMBER() OVER (PARTITION BY groupid ORDER BY age DESC) rn
FROM mytable
) x
WHERE x.rn = 1
यह संबंधों के मामले में भी प्रति समूह अधिकतम एक रिकॉर्ड लौटाएगा।
दोनों विधियों के प्रदर्शन की तुलना के लिए मेरे ब्लॉग में यह लेख देखें: