Короткий ответ
Используйте SELECT DISTINCT country FROM customers. Оператор DISTINCT удаляет повторяющиеся строки из результата и возвращает каждую страну один раз.
Как это работает подробнее
DISTINCT применяется ко всей результирующей строке после вычисления выражений в SELECT. Поэтому при выборе двух столбцов уникальность определяется по их комбинации.
Для одного столбца все значения NULL считаются неразличимыми при устранении дублей, и в результате остаётся не более одной строки с NULL.
Пример кода
query.sql
SELECT DISTINCT country
FROM customers
ORDER BY country;Что использовать на практике
- Сначала проверьте источник дублей. Если повторы появились после некорректного
JOIN, не маскируйте ошибку операторомDISTINCT. - Проверяйте план. На большой таблице сравните стоимость сортировки или хеширования через
EXPLAIN.
Подводные камни
- Несколько столбцов.
DISTINCT country, cityвозвращает уникальные пары, а не два независимых списка. - NULL. Несколько отсутствующих значений схлопнутся в одну строку результата.