Перейти к основному содержанию
iTempUniversity.com
  • В начало
  • Календарь
  • Дополнительно
Поиск по всему сайту Закрыть
Изменить данные поисковой строки
Русский ‎(ru)‎
Русский ‎(ru)‎ English ‎(en)‎
Вы используете гостевой доступ
Вход
iTempUniversity.com
В начало Календарь
Развернуть всё Свернуть всё
  1. 001.3.2. Курс SQL с нуля до устройства на работу за 4 месяца.(Владимир Амелин)
  2. Неделя 9
  3. Домашнее задание (2 мин.)

Домашнее задание (2 мин.)

Требуемые условия завершения

https://youtu.be/uytpmv5JPuk
 

  1. Вывести список всех фильмов (film). По каждому фильму отобразить поля:
    - название (film.title).
    - кол-во дней, на которые фильм дается в аренду (film.rental_duration).
    - общее кол-во фильмов, которые даются в аренду на такое же кол-во дней (с таким же значением film.rental_duration)

  1. Вывести список всех фильмов (film). По каждому фильму отобразить поля:
    - название (film.title).
    - кол-во дней, на которые фильм дается в аренду (film.rental_duration).
    - продолжительность фильма (film.length).
    - порядковый номер фильма в порядке уменьшения продолжительности (film.length). Нумеруем в рамках групп фильмов с одинаковым значением film.rental_duration. 
    У каждого фильма должен быть свой уникальный номер. Фильмы с одинаковой продолжительностью сортируем по названию (film.title) в алфавитном порядке.

  1. (Задача со *) На основе таблицы платежей (payment) посчитать накопительным итогом общую сумму платежей (sum(payment.amount)) на каждую дату, на которую были платежи. Вывести поля:
    - дата (payment.payment_date::date). Одну дату выводим в одной строке.
    - общая сумма всех платежей (sum(payment.amount)) за все даты до текущей, а также за текущую дату.


Задания для повторения и закрепления пройденных тем

Запросите адреса клиентов проката с индексом(postal_code), начинающимся на 6 ,а также необходимо включить адреса в городе (city.city) Лондон. В итоговую таблицу выведите индекс(postal_code), адрес (address). Используйте union, join, like.

Дополнительные задачи по теме оконных функций:

1. По каждому платежу (одному платежу соответствует одна строка в таблице payment) вывести 1 строку с полями: 
 - дата платежа 
 - сумма платежа 
 - сумма всех платежей за ту же дату
 - процент текущего платежа относительно всех платежей за ту же дату

 2. Вывести список уникальный имен актеров (поле first_name в таблице actor). Дубликаты удалить без использования Distinct, а с с помощью применения оконных функций. Варианты удаления с помощью оконных функций (сделать с помощью любого из методов):
 - с помощью row_number() пронумеровав строки с одинаковым именем (actor.first_name) последовательными номерами 1, 2, 3 и т.д., а затем оставив только строки под номерами 1
 - с помощью lag/lead
 - с помощью count(order by)

 3. Получить список всех фильмов, за прокат которых были платежи '2007-04-30' (payment.payment_date::date = '2007-04-30') и вывести список их уникальных названий (film.title).  Дубликаты нужно удалять с применением оконной функции row_number (пронумеровать фильмы с одинаковыми названиями последовательно 1, 2, 3, …) и оставить только строки под номером 1.

 4*. По каждому платежу (одному платежу соответствует одна строка в таблице payment) вывести 1 строку с полями: 
 - дата платежа  
 - сумма платежа 
 - сумма всех платежей за текущую дату и 2 предыдущие

 Подсказка: использовать sum(...) over(partition by  range between [значение типа interval] and [значение типа interval]). Пример использования есть в документации: 


Служба поддержки сайта
Вы используете гостевой доступ (Вход)
Сводка хранения данных
Скачать мобильное приложение

Наши проекты:

  • Бесплатные йога-курсы
  • Блог студентов
  • Мы в YouTube
logo

ИП Касумова Людмила Расимовна

ИНН: 366324755457

ОГРНИП: 316366800124321

На платформе Moodle