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

SQL Server:solo l'ultima voce in GROUP BY

Una soluzione alternativa, che potrebbe darti prestazioni migliori (testare in entrambi i modi e verificare i piani di esecuzione):

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

Questa query presuppone che l'ID sia un valore univoco (almeno per qualsiasi chiave_attività) e che sia impostato su NOT NULL.