Поиск имён, встречающихся более одного раза

Сгруппируйте строки по full_name и оставьте группы с COUNT(*) ≥ 2 через HAVING. В результате каждое повторяющееся имя появится один раз.

Короткий ответ

Что ответить на собеседовании

Сгруппируйте строки по full_name и оставьте группы с COUNT(*) ≥ 2 через HAVING. В результате каждое повторяющееся имя появится один раз.

Подробный разбор

Ответ с пояснениями

Условие

Нужно вывести те имена, которые присутствуют в таблице минимум дважды.

CREATE TABLE people (
    person_id INT,
    full_name VARCHAR(100)
);

Пример данных:

1, Игорь
2, Анна
3, Петр
4, Игорь
...

Для получения результата используйте агрегирующую функцию и условие HAVING.

Ответ

Сгруппируйте строки по full_name и оставьте группы с COUNT(*) ≥ 2 через HAVING. В результате каждое повторяющееся имя появится один раз.

SELECT full_name, COUNT(*) AS occurrences
FROM people
WHERE full_name IS NOT NULL
GROUP BY full_name
HAVING COUNT(*) >= 2;

Для показанных данных в результате будет Игорь с количеством 2. Если нужен только столбец имён, уберите счётчик из SELECT, оставив его в HAVING. Регистр и правила равенства определяются collation; нормализация пробелов или регистра не выполняется автоматически этим запросом.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее