Jak zbudować zapytanie SELECT, aby wyświetlić nazwiska mieszkańców bez powtórzeń (unikalne)?
Źle.
ORDER BY tylko posortuje nazwiska, ale powtórzenia zostaną.Dobrze.
DISTINCT usuwa duplikaty i zwraca każde nazwisko raz.Źle.
TOP 10 ograniczy wynik do 10 wierszy, nie usunie powtórzeń.Źle.
AVG liczy średnią z liczb - dla nazwisk nie ma sensu.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.