View difference between Paste ID: L8qf8rPf and Se9WMT5y
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;