Выбор ответа Junior GROUP BY и агрегаты спрашивают часто обновлено

Поиск дублей

Вопрос

Как найти email, которые встречаются в таблице users больше одного раза?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: SELECT email FROM users GROUP BY email HAVING COUNT() 1. Группируем по email и оставляем группы, где больше одной строки.

Варианты ответа

  1. SELECT DISTINCT email FROM users ORDER BY email
  2. SELECT email FROM users GROUP BY email HAVING COUNT(*) > 1правильный ответ
  3. SELECT email FROM users WHERE COUNT(email) > 1 GROUP BY email
  4. SELECT email, COUNT(*) FROM users ORDER BY email

Разбор

Группируем по email и оставляем группы, где больше одной строки. DISTINCT, наоборот, прячет дубли. Агрегат в WHERE недопустим. Последний вариант упадёт: агрегат без GROUP BY нельзя смешивать с обычной колонкой email.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме