Сначала определите поля, по которым запись считается дублем. Затем найдите группы с количеством больше одного и выберите до десяти строк из этих групп.
Как получить 10 неуникальных записей из таблицы базы данных?
Сначала определите поля, по которым запись считается дублем. Затем найдите группы с количеством больше одного и выберите до десяти строк из этих групп.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Сначала определите поля, по которым запись считается дублем. Затем найдите группы с количеством больше одного и выберите до десяти строк из этих групп.
Например, для дублей по email:
WITH marked AS (
SELECT id, email,
COUNT(*) OVER (PARTITION BY email) AS copies
FROM users
)
SELECT id, email
FROM marked
WHERE copies > 1
ORDER BY email, id
LIMIT 10;
Запрос возвращает строки, включая первую в каждой повторяющейся группе, а не только «лишние» экземпляры. Если нужны десять повторяющихся значений, используют GROUP BY ... HAVING COUNT(*) > 1. Обработку NULL и регистр email задают требованиями.