БД таблица users, два столбца: id number autoincrement unique, name varchar not unique. Написать запрос, чтобы вывелись имена, которые встречаются 2 и более раз

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