Jak zbudować zapytanie SELECT, aby wyświetlić nazwiska mieszkańców bez powtórzeń (unikalne)?
A.
SELECT TOP 10 nazwisko FROM mieszkancy;
Źle.
TOP 10 ograniczy wynik do 10 wierszy, nie usunie powtórzeń.B.
SELECT DISTINCT nazwisko FROM mieszkancy;
Dobrze.
DISTINCT usuwa duplikaty i zwraca każde nazwisko raz.C.
SELECT AVG(nazwisko) FROM mieszkancy;
Źle.
AVG liczy średnią z liczb - dla nazwisk nie ma sensu.D.
SELECT nazwisko FROM mieszkancy ORDER BY nazwisko;
Źle.
ORDER BY tylko posortuje nazwiska, ale powtórzenia zostaną.Aby usunąć powtórzenia z wyniku, dodaje się do
SELECT słowo DISTINCT, np. SELECT DISTINCT nazwisko FROM mieszkancy. Zapytanie zwróci wtedy każde nazwisko tylko raz, nawet jeśli w tabeli występuje wielokrotnie. Dlatego unikalne nazwiska daje SELECT DISTINCT.Pozostałe zapytania nie usuwają duplikatów. Wariant z
ORDER BY jedynie ułoży nazwiska alfabetycznie - powtarzające się wpisy nadal się pojawią, tylko obok siebie. TOP 10 obetnie wynik do dziesięciu wierszy, co nie ma związku z unikalnością, a w MySQL i tak używa się raczej LIMIT. AVG(nazwisko) to funkcja agregująca licząca średnią z wartości liczbowych - dla tekstu jak nazwisko jest bezużyteczna. Każde nazwisko raz zwróci SELECT DISTINCT.