SHOW:
|
|
- or go back to the newest paste.
1 | - | /*Определите, летом какого года общая выручка в магазине была максимальной. Затем проанализируйте данные за этот год по странам. Выгрузите таблицу с полями: |
1 | + | /*Перепишите один из своих прошлых запросов с использованием оператора WITH. |
2 | - | country — название страны; |
2 | + | Выведите топ-40 самых длинных фильмов, аренда которых составляет больше 2 долларов. Проанализируйте данные о возрастных рейтингах отобранных фильмов. Выгрузите в итоговую таблицу следующие поля: |
3 | - | total_invoice — число заказов, оформленных в этой стране в тот год, когда общая выручка за лето была максимальной; |
3 | + | возрастной рейтинг (поле rating); |
4 | - | total_customer — число клиентов, зарегистрированных в этой стране. |
4 | + | минимальное и максимальное значения длительности (поле length), назовите поля min_length и max_length соответственно; |
5 | - | Отсортируйте таблицу по убыванию значений в поле total_invoice, а затем добавьте сортировку по названию страны в лексикографическом порядке. |
5 | + | среднее значение длительности (поле length), назовите поле avg_length; |
6 | минимум, максимум и среднее для цены просмотра (поле rental_rate), назовите поля min_rental_rate, max_rental_rate, avg_rental_rate соответственно. | |
7 | Отсортируйте среднюю длительность фильма по возрастанию. | |
8 | - | --задача выполняется в два этапа: |
8 | + | |
9 | - | --1. сначала опредеяем лучшее лето |
9 | + | |
10 | - | SELECT EXTRACT(YEAR FROM CAST(invoice_date AS date)) AS YEAR, |
10 | + | WITH top_40 AS |
11 | - | SUM(total) |
11 | + | (SELECT film_id |
12 | - | FROM invoice |
12 | + | FROM movie |
13 | - | WHERE EXTRACT(MONTH FROM CAST(invoice_date AS date)) IN (6, 7, 8) |
13 | + | WHERE rental_rate > 2 |
14 | - | GROUP BY EXTRACT(YEAR FROM CAST(invoice_date AS date)) |
14 | + | ORDER BY length DESC |
15 | - | ORDER BY SUM(total) DESC; |
15 | + | LIMIT 40) |
16 | SELECT rating, | |
17 | - | -затем анализируем данные за этот год по странам |
17 | + | MIN(length) AS min_length, |
18 | - | SELECT sub_one.country, |
18 | + | MAX(length) AS max_length, |
19 | - | sub_one.total_invoice, |
19 | + | AVG(length) AS avg_length, |
20 | - | sub_two.total_customer |
20 | + | MIN(rental_rate) AS min_rental_rate, |
21 | - | FROM |
21 | + | MAX(rental_rate) AS max_rental_rate, |
22 | - | (SELECT invoice.billing_country AS country, |
22 | + | AVG(rental_rate) AS avg_rental_rate |
23 | - | COUNT(invoice.total) AS total_invoice |
23 | + | FROM movie |
24 | - | FROM invoice |
24 | + | INNER JOIN top_40 ON movie.film_id = top_40.film_id |
25 | - | WHERE EXTRACT(YEAR FROM CAST(invoice_date AS date)) = 2011 |
25 | + | GROUP BY rating |
26 | - | GROUP BY country) AS sub_one |
26 | + | ORDER BY AVG(length); |