Słowo kluczowe DISTINCT jest używane w połączeniu z poleceniem SELECT w celu wyeliminowania dupikatów rekordów i zwrócenia jedynie unikalnych ich reprezentacji.
Ale unikalność rekordu jest definiowana przez klucz główny tabeli – o jakich duplikatach rekordów mówisz?
Wyobraźcie sobię sytuację w której dana tabela przechowuje zdefiniowane wcześniej opisy produktów. Może się jednak okazać, że opisy zostały przygotowane przez kilka osób jednocześnie i występuje kilka potwórzeń. My chcemy zwrócić jedynie unikalne wartości tych opisów celem przygotowania tłumaczeń na inne języki – zespół zajmujący się translacjami nie będzie szczęśliwy interpetując te same opisy. W tym celu wykorzystamy polecenie DISTINCT.
Zanim jednak przejdziemy do wykonania tego polecenia sprawdzimy ile rekordów mamy w danej tabeli:
-- zapytanie zwraca 762 rekordy SELECT COUNT(*) FROM Production.ProductDescription
Teraz wykonajmy polecenie DISTINCT w celu eliminacji duplikatów:
SELECT DISTINCT(Description) FROM Production.ProductDescription
Na sam koniec dokonamy sprawdzenia ilość zwróconych rekordów:
-- zapytanie zwraca 733 rekordy SELECT COUNT(DISTINCT(Description)) FROM Production.ProductDescription
Wykorzystajmy jeszcze wiedzę z poprzedniego wpisu. Sprawdźmy, które opisy się powtarzały i ile razy:
-- rezultatem jest 29 rekordów SELECT COUNT(ProductDescriptionID), Description FROM Production.ProductDescription GROUP BY Description HAVING COUNT(ProductDescriptionID) > 1