Как получить 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 задают требованиями.

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

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

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

Подробнее