Ответ
Ключевое слово DISTINCT в SQL используется для исключения дублирующихся строк из результирующего набора данных оператора SELECT. Оно гарантирует, что все значения в результирующих столбцах будут уникальными.
Пример использования:
-- Получить список уникальных городов из таблицы пользователей
SELECT DISTINCT city
FROM users;
Как это работает:
DISTINCTприменяется ко всей комбинации столбцов, перечисленных послеSELECT. ЗапросSELECT DISTINCT a, bвернет уникальные пары (a, b).- Для определения уникальности используется сравнение значений, при этом
NULLсчитается равным другомуNULL.
Важные нюансы:
- Производительность: Использование
DISTINCTтребует дополнительной сортировки и сравнения данных, что может быть ресурсоемким на больших таблицах. - Альтернативы: Для более сложной агрегации или подсчета уникальных значений часто эффективнее использовать
GROUP BY.-- Эквивалентный результат с GROUP BY SELECT city FROM users GROUP BY city; - DISTINCT ON (PostgreSQL): В PostgreSQL существует расширение
DISTINCT ON (expression), которое позволяет оставить только первую строку для каждой группы, заданной выражением.