[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-sql-v-chem-raznitsa-mezhdu-operatorami-group-by-i-distinct":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":15,"progress":16,"seo":17},897,"v-chem-raznitsa-mezhdu-operatorami-group-by-i-distinct",25,"sql","SQL","🗃️","В чем разница между операторами GROUP BY и DISTINCT?","`DISTINCT` удаляет дублирующиеся строки из результата, оставляя только уникальные комбинации значений. `GROUP BY` создаёт группы для каждой уникальной комбинации значений и позволяет применять к ним агрегатные функции. Оба оператора считают `NULL` отдельным значением.\n\n| Характеристика | DISTINCT | GROUP BY |\n|---------------|----------|----------|\n| Назначение | Удаление дубликатов | Группировка для агрегации |\n| Агрегатные функции | Нельзя комбинировать | Основное назначение |\n| Обработка NULL | Считает отдельным значением | Считает равными, одна группа |\n| Результат без агрегатов | Уникальные строки | Уникальные строки (эквивалентно) |\n\nЕсли задача — просто получить список уникальных значений без агрегации, `DISTINCT` семантически точнее и делает намерение очевидным. Если нужно вычислить агрегаты по группам (`COUNT`, `SUM`, `AVG`), необходим `GROUP BY`.\n\n```sql\n-- Эквивалентные запросы (только уникальные отделы)\nSELECT DISTINCT department FROM employees;\nSELECT department FROM employees GROUP BY department;\n\n-- Здесь нужен именно GROUP BY\nSELECT department, COUNT(*), AVG(salary)\nFROM employees\nGROUP BY department;\n```\n\n> **На собеседовании:** для уникальных значений используйте `DISTINCT`, для агрегации — `GROUP BY`. Частая ошибка — использовать `GROUP BY` вместо `DISTINCT` для простого удаления дубликатов, что запутывает читателя.","","junior",[7],[],null,{"title":18,"description":19,"ogTitle":18,"ogDescription":20,"keywords":21,"schemaAnswer":22,"featuredSnippetReady":23},"В чем разница между операторами GROUP BY и DISTINCT? — Gymterview","`DISTINCT` удаляет дублирующиеся строки из результата, оставляя только уникальные комбинации значений. `GROUP BY` создаёт группы для каждой уникальной комбинаци","`DISTINCT` удаляет дублирующиеся строки из результата, оставляя только уникальные комбинации значений. `GROUP BY` создаё",[7,13],"`DISTINCT` удаляет дублирующиеся строки из результата, оставляя только уникальные комбинации значений. `GROUP BY` создаёт группы для каждой уникальной комбинации значений и позволяет применять к ним агрегатные функции. Оба оператора считают `NULL` отдельным значением.",true]