SHOW:
|
|
- or go back to the newest paste.
1 | - | /*Сформируйте статистику по категориям фильмов. Отобразите в итоговой таблице два поля: |
1 | + | /*Определите, летом какого года общая выручка в магазине была максимальной. Затем проанализируйте данные за этот год по странам. Выгрузите таблицу с полями: |
2 | - | название категории; |
2 | + | country — название страны; |
3 | - | число фильмов из этой категории. |
3 | + | total_invoice — число заказов, оформленных в этой стране в тот год, когда общая выручка за лето была максимальной; |
4 | - | Фильмы для второго поля нужно отобрать по условию. Посчитайте фильмы только с теми актёрами и актрисами, которые больше семи раз снимались в фильмах, вышедших после 2013 года. |
4 | + | total_customer — число клиентов, зарегистрированных в этой стране. |
5 | - | Назовите поля name_category и total_films соответственно. Отсортируйте таблицу по количеству фильмов от большего к меньшему, а затем по полю с названием категории в лексикографическом порядке. |
5 | + | Отсортируйте таблицу по убыванию значений в поле total_invoice, а затем добавьте сортировку по названию страны в лексикографическом порядке. |
6 | */ | |
7 | ||
8 | - | SELECT category.name AS name_category, |
8 | + | --задача выполняется в два этапа: |
9 | - | COUNT(movie.film_id) AS total_films |
9 | + | --1. сначала опредеяем лучшее лето |
10 | - | FROM movie |
10 | + | SELECT EXTRACT(YEAR FROM CAST(invoice_date AS date)) AS YEAR, |
11 | - | INNER JOIN film_category ON movie.film_id = film_category.film_id |
11 | + | SUM(total) |
12 | - | INNER JOIN category ON category.category_id = film_category.category_id |
12 | + | FROM invoice |
13 | - | WHERE movie.film_id IN |
13 | + | WHERE EXTRACT(MONTH FROM CAST(invoice_date AS date)) IN (6, 7, 8) |
14 | - | (SELECT movie.film_id |
14 | + | GROUP BY EXTRACT(YEAR FROM CAST(invoice_date AS date)) |
15 | - | FROM movie |
15 | + | ORDER BY SUM(total) DESC; |
16 | - | |
16 | + | |
17 | - | INNER JOIN film_actor ON movie.film_id = film_actor.film_id |
17 | + | -затем анализируем данные за этот год по странам |
18 | - | WHERE film_actor.actor_id IN |
18 | + | SELECT sub_one.country, |
19 | - | (SELECT actor_id |
19 | + | sub_one.total_invoice, |
20 | - | FROM film_actor |
20 | + | sub_two.total_customer |
21 | - | |
21 | + | FROM |
22 | - | INNER JOIN movie ON movie.film_id = film_actor.film_id |
22 | + | (SELECT invoice.billing_country AS country, |
23 | - | WHERE movie.release_year > 2013 |
23 | + | COUNT(invoice.total) AS total_invoice |
24 | - | GROUP BY actor_id |
24 | + | FROM invoice |
25 | - | HAVING COUNT(actor_id) > 7) |
25 | + | WHERE EXTRACT(YEAR FROM CAST(invoice_date AS date)) = 2011 |
26 | - | GROUP BY movie.film_id) |
26 | + | GROUP BY country) AS sub_one |
27 | - | GROUP BY category.name |
27 | + | LEFT JOIN |
28 | - | ORDER BY COUNT(movie.film_id) DESC, category.name; |
28 | + | (SELECT country, |
29 | COUNT(customer_id) AS total_customer | |
30 | FROM client | |
31 | GROUP BY country) AS sub_two ON sub_one.country = sub_two.country | |
32 | ORDER BY total_invoice DESC, | |
33 | country; |