Twój przykład nr 2 sprawił, że przez chwilę drapałem się po głowie - pomyślałem:„Nie możesz DISTINCT pojedyncza kolumna, co by to oznaczało?” – dopóki nie zorientowałem się, co się dzieje.
Kiedy masz
SELECT DISTINCT(t.ItemNumber)
nie jesteś , wbrew pozorom, faktycznie prosi o odrębne wartości z t.ItemNumber ! Twój przykład nr 2 faktycznie jest analizowany tak samo jak
SELECT DISTINCT
(t.ItemNumber)
,
(SELECT TOP 1 ItemDescription
FROM Transactions
WHERE ItemNumber = t.ItemNumber
ORDER BY DateCreated DESC) AS ItemDescription
FROM Transactions t
z poprawnymi składniowo, ale zbędnymi nawiasami wokół t.ItemNumber . To dla zestawu wyników jako całości DISTINCT dotyczy.
W tym przypadku, ponieważ Twój GROUP BY grup według kolumny, która faktycznie się zmienia, otrzymasz te same wyniki. Właściwie jestem nieco zaskoczony, że SQL Server tego nie robi (w GROUP BY przykład) nalegaj, aby podzapytana kolumna była wymieniona w GROUP BY lista.