Ответ
Ключевое слово DISTINCT в SQL применяется в операторе SELECT для исключения дублирующихся строк из результирующего набора данных. Оно гарантирует, что все строки в результате будут уникальными.
Базовый синтаксис:
SELECT DISTINCT column1, column2, ...
FROM table_name
WHERE condition;
Примеры использования:
-
Получение уникальных значений одного столбца:
-- Вернет список уникальных городов из таблицы клиентов SELECT DISTINCT city FROM customers; -
Получение уникальных комбинаций нескольких столбцов:
-- Вернет уникальные пары (город, страна) SELECT DISTINCT city, country FROM customers; -
Использование с агрегатными функциями, например,
COUNT:-- Подсчет количества уникальных городов SELECT COUNT(DISTINCT city) FROM customers; -- Без DISTINCT подсчитаются все строки, включая дубли SELECT COUNT(city) FROM customers;
Важные особенности и производительность:
DISTINCTвыполняет сортировку или хэширование данных для поиска дубликатов, что может быть ресурсоемкой операцией на больших таблицах.- Применение
DISTINCTко всем столбцам (SELECT DISTINCT *) часто является признаком проблем в дизайне запроса или данных. DISTINCTработает со всей строкой результата. Две строки считаются одинаковыми, только если все выбранные столбцы в них совпадают.- В некоторых случаях использование
GROUP BYпо тем же столбцам может быть более эффективной или семантически правильной альтернативой.