ОсновыНачальный
DISTINCT
Убирает дубликаты из результата запроса.
Синтаксис
SELECT DISTINCT column1, column2 FROM table;Объяснение
SELECT DISTINCT возвращает только уникальные строки. Для этого база сортирует или хэширует результат — на больших таблицах это дорого.
Если дубликаты возникают из-за JOIN или неправильной схемы — лучше исправить запрос, а не добавлять DISTINCT.
Пример
-- Уникальные страны пользователей
SELECT DISTINCT country FROM users ORDER BY country;
-- COUNT уникальных
SELECT COUNT(DISTINCT user_id) AS unique_users FROM visits;Связанные термины
Анекдоты по теме
Начинающий: — Я написал запрос, а он ничего не вернул. Почему? Опытный: — А ты поставил WHERE правильно? Начинающий: — Да. Опытный: — А данные точно есть? Начинающий: — Не знаю. Опытный: — Поздравляю, ты встретил NULL.
— EXPLAIN показывает plan. А EXPLAIN ANALYZE? — EXPLAIN ANALYZE реально выполняет запрос и показывает фактическое время. — Значит, EXPLAIN ANALYZE на DELETE... — Удалит данные. Оберни в транзакцию и сделай ROLLBACK.
— Почему мой запрос не находит «Иванов»? — Покажи WHERE. — WHERE name = 'иванов' — Регистр. — О. — Используй ILIKE или LOWER().