Вашият пример №2 ме накара да се почеша по главата известно време - помислих си:„Не можеш да DISTINCT
една колона, какво би означавало това?" - докато не осъзнах какво става.
Когато имате
SELECT DISTINCT(t.ItemNumber)
ти не си , въпреки външния вид, всъщност иска отделни стойности на t.ItemNumber
! Вашият пример #2 всъщност се анализира по същия начин като
SELECT DISTINCT
(t.ItemNumber)
,
(SELECT TOP 1 ItemDescription
FROM Transactions
WHERE ItemNumber = t.ItemNumber
ORDER BY DateCreated DESC) AS ItemDescription
FROM Transactions t
със синтактично правилни, но излишни скоби около t.ItemNumber
. Това е DISTINCT
за набора от резултати като цяло се прилага.
В този случай, тъй като вашият GROUP BY
групи по колоната, която всъщност варира, получавате същите резултати. Всъщност съм леко изненадан, че SQL Server не (в GROUP BY
пример) настояват подзаявената колона да е спомената в GROUP BY
списък.