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

SQL Server :seule la dernière entrée dans GROUP BY

Une solution alternative, qui peut vous donner de meilleures performances (testez dans les deux sens et vérifiez les plans d'exécution) :

SELECT
     T1.id,
     T1.business_key,
     T1.result
FROM
     dbo.My_Table T1
LEFT OUTER JOIN dbo.My_Table T2 ON
     T2.business_key = T1.business_key AND
     T2.id > T1.id
WHERE
     T2.id IS NULL

Cette requête suppose que l'ID est une valeur unique (au moins pour toute business_key donnée) et qu'il est défini sur NOT NULL.