Определение и подсчёт повторяющихся имён в таблице

Сгруппируйте строки по name и оставьте только группы с COUNT(*) > 1. Агрегация вернёт одно значение имени и число его вхождений.

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

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

Сгруппируйте строки по name и оставьте только группы с COUNT(*) > 1. Агрегация вернёт одно значение имени и число его вхождений.

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

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

Условие

В базе данных присутствует таблица name с колонками id и name. Необходимо составить SQL‑запрос, который найдёт все значения в столбце name, встречающиеся более одного раза, и выведет их вместе с количеством повторений. В результате должны отображаться только те имена, у которых количество вхождений превышает единицу, а также соответствующее число их появлений.

Ответ

Сгруппируйте строки по name и оставьте только группы с COUNT(*) > 1. Агрегация вернёт одно значение имени и число его вхождений.

SELECT name, COUNT(*) AS occurrences
FROM name
GROUP BY name
HAVING COUNT(*) > 1;

COUNT(*) учитывает все строки. Если NULL не должен считаться именем, добавьте WHERE name IS NOT NULL перед GROUP BY. Равенство строк зависит от collation; регистр и пробелы не стоит нормализовать без отдельного требования. Поле id в этой выборке не нужно.

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

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

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

Подробнее