Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Recherche d'une valeur unique basée sur l'agrégat d'une autre valeur tout en regroupant entièrement sur une troisième valeur

Je pense que cela fera ce que vous voulez.

;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