9. Найти имена, которые встречаются два и более раз
Условие задачи:
Дана таблица users:
id NUMBER AUTOINCREMENT UNIQUE
name VARCHAR
Поле name не является уникальным.
Необходимо вывести имена, которые встречаются в таблице два и более раз.
Спойлеры к решению
Подсказки
💡 Сгруппируй записи по полю
💡 Количество записей в каждой группе можно посчитать через
💡 Для фильтрации сгруппированных данных используй
name.💡 Количество записей в каждой группе можно посчитать через
COUNT(*).💡 Для фильтрации сгруппированных данных используй
HAVING.Решение
SELECT name
FROM users
GROUP BY name
HAVING COUNT(*) >= 2;
GROUP BY name объединяет строки с одинаковыми именами.
Условие:
HAVING COUNT(*) >= 2
оставляет только те группы, в которых имя встречается минимум два раза.
Например, для данных:
id | name
---|------
1 | Ivan
2 | Oleg
3 | Ivan
4 | Anna
5 | Anna
результат будет:
Ivan
Anna