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.