Процент использования объектов

Задача по SQL с проверкой онлайн

Сложность
Сложная
Языки
SQL
Темы
SQL: группировка
Даты и время
SQL: JOIN

Для каждой пары «объект — месяц», в которой были бронирования, посчитайте процент занятости и округлите его до одного знака после запятой. Клуб открыт ежедневно с 08:00 до 20:30, это 25 слотов в день. Процент = сумма slots за месяц / (25 × число дней в календарном месяце) × 100; дни без бронирований тоже учитываются. Выведите столбцы name (название объекта), month (первый день месяца, например 2012-09-01) и utilisation (процент). Отсортируйте по name, затем по month.

Таблицы и данные уже есть в стартовом коде и создаются заново при каждом запуске (SQLite):

  • facilities(facid, name, membercost, guestcost, initialoutlay, monthlymaintenance) — объекты клуба; membercost и guestcost — цена одного слота для участника и для гостя.
  • members(memid, surname, firstname, address, zipcode, telephone, recommendedby, joindate) — участники; recommendedby — memid пригласившего или NULL; memid = 0 — гость.
  • bookings(bookid, facid, memid, starttime, slots) — бронирования; один слот — 30 минут; starttime — текст вида 2012-09-14 09:00:00.

Источник: PostgreSQL Exercises — Work out the utilisation percentage for each facility by month · © Alisdair Owens · CC BY-SA 3.0 · адаптация: пересказ на русском, перенос на SQLite, учебные данные CodeShare

Решить онлайнБесплатно и без регистрации: пишете код в браузере и проверяете его тестами (без аккаунта — несколько задач в день).

Ещё задачи

Все задачи для тренировки