Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Richiedere un valore univoco basato sull'aggregazione di un altro valore mentre si raggruppa interamente su un terzo valore

Penso che questo farà quello che vuoi.

;WITH X1 
AS 
(
    SELECT SomeDateTime
           ,GroupID 
           ,ID
           ,ROW_NUMBER() OVER (PARTITION BY GroupID
                               ORDER BY SomeDateTime DESC
                               ) AS rn
    FROM X
)
SELECT SomeDateTime
       ,GroupID
       ,ID
FROM X1
WHERE rn = 1