В listens — прослушивания: seconds — сколько секунд играл трек.
Для каждого пользователя и каждого дня, когда он что-то слушал, верните user_id, day, minutes — минуты за день и total_minutes — сколько минут набежало с первого дня по этот день включительно. Минуты — с одним знаком.
Порядок: user_id, затем day.
В работе: Прогресс-бар «вы послушали 1000 минут» в итогах года.
Таблицы
listens — одна строка — одно прослушивание
| Колонка | Тип | Что значит |
|---|---|---|
listen_id | int | ключ |
user_id | int | пользователь |
listened_at | timestamp | начало |
seconds | int | длительность, сек |
Пример: данные
listens · 5 строк
| listen_id | user_id | listened_at | seconds |
|---|---|---|---|
| 1 | 7 | 2026-01-03T08:00:00 | 215 |
| 2 | 7 | 2026-01-03T08:04:00 | 190 |
| 3 | 7 | 2026-01-05T22:10:00 | 240 |
| 4 | 8 | 2026-01-04T12:00:00 | 95 |
| 5 | 8 | 2026-01-04T23:59:00 | 61 |
Ожидаемый ответ
| user_id | day | minutes | total_minutes |
|---|---|---|---|
| 7 | 2026-01-03 | 6,8 | 6,8 |
| 7 | 2026-01-05 | 4 | 10,8 |
| 8 | 2026-01-04 | 2,6 | 2,6 |
Как проверяем
Ваш запрос выполняется в PostgreSQL 16 прямо в браузере на 4 наборах данных: пример выше и скрытые — с NULL, повторами и пустыми таблицами. Нужен один
SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
user_id, day, minutes, total_minutes
Источник: на данных Музыки: прослушивания по дням. Условие пересказано своими словами.
Давали на собеседовании?
Ответов пока мало — ваш поможет.
Стр. 1Ctrl+Enter — запуск · Ctrl+Shift+Enter — отправка
Посмотреть данные, проверить кусок запроса. На зачёт не влияет.
Здесь появится результат отправки.