Ответ
Оператор DISTINCT в SQL используется в предложении SELECT для исключения дублирующихся строк из результатов запроса.
Базовый синтаксис:
SELECT DISTINCT column_name FROM table_name;
Практические примеры:
-
Уникальные значения из одного столбца:
-- Найти все уникальные города клиентов SELECT DISTINCT city FROM customers; -
Уникальные комбинации из нескольких столбцов:
-- Найти все уникальные пары «город — страна» SELECT DISTINCT city, country FROM customers;Важно:
DISTINCTприменяется ко всей строке результата. Запрос выше вернет все комбинации(city, country), где хотя бы одно значение отличается. -
Использование с сортировкой (
ORDER BY):SELECT DISTINCT category FROM products ORDER BY category; -
Использование с агрегатными функциями:
-- Подсчет количества уникальных категорий SELECT COUNT(DISTINCT category) FROM products;
DISTINCT vs GROUP BY:
Для простого получения уникальных значений DISTINCT является более идиоматичным и читаемым вариантом. GROUP BY лучше использовать, когда нужна агрегация данных.
-- Эквивалентные результаты, но разная семантика:
SELECT DISTINCT status FROM orders;
SELECT status FROM orders GROUP BY status;
-- GROUP BY раскрывает свой потенциал с агрегацией:
SELECT status, COUNT(*) as order_count
FROM orders
GROUP BY status;
Примечание: Использование DISTINCT может негативно влиять на производительность на больших таблицах, так как требует сортировки и сравнения строк.