Сгруппируйте строки по 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 в этой выборке не нужно.