Войти Регистрация
Data base

18. Выручка от поднятий по дням недели

Средняя

В services — покупки платных услуг: поднятие в поиске (bump), XL-объявление (xl), выделение цветом (highlight). Если деньги вернули, refunded = true.

Верните выручку от поднятий без возвратов за каждый день с 1 по 7 марта 2026 года: day (date) и revenue_rub. В днях без продаж — 0. Должно быть ровно 7 строк, порядок — по day.

В работе: Дневной график выручки услуг: на нём должны быть видны провалы, а не пропущенные даты.

Таблицы

services — одна строка — одна покупка услуги

КолонкаТипЧто значит
purchase_idintключ
listing_idintобъявление
servicetextbump / xl / highlight
price_rubintцена
bought_attimestampвремя покупки
refundedbooleanденьги вернули

Пример: данные

services · 7 строк

purchase_idlisting_idserviceprice_rubbought_atrefunded
1101bump992026-03-01T09:12:00False
2102bump1492026-03-01T22:40:00False
3103xl3492026-03-02T10:00:00False
4104bump992026-03-03T11:30:00True
5105bump1992026-03-04T08:05:00False
6106highlight792026-03-06T14:00:00False
7107bump992026-03-07T19:45:00False

Ожидаемый ответ

dayrevenue_rub
2026-03-01248
2026-03-020
2026-03-030
2026-03-04199
2026-03-050
2026-03-060
2026-03-0799
Как проверяем Ваш запрос выполняется в PostgreSQL 16 прямо в браузере на 4 наборах данных: пример выше и скрытые — с NULL, повторами и пустыми таблицами. Нужен один SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
day, revenue_rub
LEFT JOINдатыGROUP BYNULL

Источник: на данных Авито: платные услуги продвижения. Условие пересказано своими словами.

Давали на собеседовании? Ответов пока мало — ваш поможет.