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); |