DISTINCT

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
SQL - DISTINCT