В views — сеансы просмотра: зритель может смотреть фильм частями в разные вечера. Зритель досмотрел фильм, если сумма watched_sec по всем его сеансам этого фильма не меньше 90 % длительности (films.duration_min).
Для каждого фильма, у которого есть хотя бы один зритель, верните title, viewers — число разных зрителей, finished — сколько досмотрели, finish_pct — долю досмотревших в процентах с 1 знаком.
Порядок — по finish_pct убыванию, затем по title.
В работе: Подборка для главной KION: фильмы, которые зрители реально досматривают, а не бросают на 15-й минуте.
Таблицы
films — каталог
| Колонка | Тип | Что значит |
|---|---|---|
film_id | int | ключ |
title | text | название |
duration_min | int | длительность, мин |
views — сеансы просмотра
| Колонка | Тип | Что значит |
|---|---|---|
view_id | int | ключ |
user_id | int | зритель |
film_id | int | фильм |
watched_sec | int | просмотрено за сеанс, с |
started_at | timestamp | начало сеанса |
Пример: данные
films · 3 строки
| film_id | title | duration_min |
|---|---|---|
| 1 | Метель над Ладогой | 100 |
| 2 | Последний рейс на Анадырь | 120 |
| 3 | Сторож маяка | 90 |
views · 5 строк
| view_id | user_id | film_id | watched_sec | started_at |
|---|---|---|---|---|
| 1 | 11 | 1 | 6000 | 2025-11-01T20:00:00 |
| 2 | 12 | 1 | 1200 | 2025-11-01T21:00:00 |
| 3 | 13 | 1 | 5500 | 2025-11-02T20:00:00 |
| 4 | 11 | 2 | 7200 | 2025-11-03T20:00:00 |
| 5 | 14 | 2 | 600 | 2025-11-03T21:00:00 |
Ожидаемый ответ
| title | viewers | finished | finish_pct |
|---|---|---|---|
| Метель над Ладогой | 3 | 2 | 66,7 |
| Последний рейс на Анадырь | 2 | 1 | 50 |
SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
title, viewers, finished, finish_pct
Источник: на данных онлайн-кинотеатра KION: просмотры и длительность фильмов. Условие пересказано своими словами.
Посмотреть данные, проверить кусок запроса. На зачёт не влияет.
Здесь появится результат отправки.