🔹 Дедупликация в SQL: DISTINCT, GROUP BY, подзапросы и HAVING 🔹 Как убрать дубли в результате запроса? 🔸 Дубли появляются при JOIN'ах или когда одна сущность связана с несколькими строками. Они мешают подсчётам, показывают лишние строки и портят экспорт. В SQL (Structured Query Language) есть инструменты, чтобы вернуть только уникальные значения.
🔸 DISTINCT возвращает уникальные комбинации всех выбранных колонок. Хорош, когда нужен список уникальных значений по одной/нескольким колонкам. Нельзя одновременно взять агрегат без GROUP BY.
SELECT DISTINCT user_id FROM orders; SELECT email, COUNT() FROM users GROUP BY email HAVING COUNT() > 1;
🔸 GROUP BY группирует строки по ключу и позволяет агрегировать — полезно, когда нужно посчитать и понять, какие значения повторяются. HAVING фильтрует группы (например, оставить только повторяющиеся).
🔸 Подзапрос (subquery) помогает сначала вычислить уникальные ключи или «последние» записи, а затем вернуть полные строки — удобно при дедупликации сложных JOIN'ов.
📚 Выбирай DISTINCT для быстрого списка, GROUP BY + HAVING для анализа повторов, подзапросы — для сложных случаев.
➡️ Мы в Telegram - Сетке - ВК Буду рад вашей реакции здесь⬇️
В этом посте были ссылки, но мы их удалили по правилам Сетки