В tracks — каталог, в listens — прослушивания: seconds — сколько секунд трек играл. Прослушивание засчитывается, если трек играл от 30 секунд.
Для каждого жанра найдите трек с наибольшим числом засчитанных прослушиваний: genre, track_id, title, listens. Если лидеров несколько с одинаковым числом, верните всех.
Жанры, где засчитанных прослушиваний нет, не показывайте. Порядок: genre, затем track_id.
В работе: Подборка «Хиты жанра» на главной: кого ставить первым.
Таблицы
tracks — каталог треков
| Колонка | Тип | Что значит |
|---|---|---|
track_id | int | ключ |
title | text | название |
artist | text | исполнитель |
genre | text | жанр |
listens — одна строка — один запуск трека
| Колонка | Тип | Что значит |
|---|---|---|
listen_id | int | ключ |
user_id | int | слушатель |
track_id | int | трек |
listened_at | timestamp | начало |
seconds | int | сколько играл |
Пример: данные
tracks · 4 строки
| track_id | title | artist | genre |
|---|---|---|---|
| 1 | Северный ветер | Полина Гришина | инди |
| 2 | Трамвай №7 | Белые ночи | инди |
| 3 | Ноль градусов | Артём Сурков | рэп |
| 4 | Кольцевая | МКАД-бэнд | рэп |
listens · 6 строк
| listen_id | user_id | track_id | listened_at | seconds |
|---|---|---|---|---|
| 1 | 11 | 1 | 2025-11-01T08:00:00 | 190 |
| 2 | 12 | 1 | 2025-11-01T09:00:00 | 45 |
| 3 | 13 | 2 | 2025-11-01T10:00:00 | 200 |
| 4 | 14 | 3 | 2025-11-02T21:00:00 | 180 |
| 5 | 15 | 3 | 2025-11-02T21:10:00 | 160 |
| 6 | 16 | 4 | 2025-11-02T22:00:00 | 170 |
Ожидаемый ответ
| genre | track_id | title | listens |
|---|---|---|---|
| инди | 1 | Северный ветер | 2 |
| рэп | 3 | Ноль градусов | 2 |
Как проверяем
Ваш запрос выполняется в PostgreSQL 16 прямо в браузере на 5 наборах данных: пример выше и скрытые — с NULL, повторами и пустыми таблицами. Нужен один
SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
genre, track_id, title, listens
Источник: на данных Музыки: треки и прослушивания. Условие пересказано своими словами.
Давали на собеседовании?
Ответов пока мало — ваш поможет.
Стр. 1Ctrl+Enter — запуск · Ctrl+Shift+Enter — отправка
Посмотреть данные, проверить кусок запроса. На зачёт не влияет.
Здесь появится результат отправки.