Выведите топ-5 пользователей по количеству совершённых ими транзакций.

Сгруппируйте транзакции по user_id, отсортируйте количество по убыванию и выберите первые пять. Для воспроизводимости добавьте сортировку по user_id при равенстве.

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

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

Сгруппируйте транзакции по user_id, отсортируйте количество по убыванию и выберите первые пять. Для воспроизводимости добавьте сортировку по user_id при равенстве.

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

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

Сгруппируйте транзакции по user_id, отсортируйте количество по убыванию и выберите первые пять. Для воспроизводимости добавьте сортировку по user_id при равенстве.

Предположим таблицу transactions(id, user_id), где одна строка — одна учитываемая транзакция:

SELECT user_id, COUNT(*) AS transaction_count
FROM transactions
WHERE user_id IS NOT NULL
GROUP BY user_id
ORDER BY transaction_count DESC, user_id
LIMIT 5;

Если считать нужно только завершённые операции или определённый период, добавьте соответствующий фильтр до GROUP BY. Запрос возвращает максимум пять пользователей; для всех участников, разделивших пятое место, потребуется ранжирование и отдельно согласованное правило ничьих. Имена можно получить соединением с таблицей пользователей.

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

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

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

Подробнее