В прошлом месяце я работал над запросом, который выводил топ-40 самых длинных фильмов٫ аренда которых составляет больше 2 долларов. Он был достаточно сложным٫ но теперь я хочу рассказать вам٫ как использовать ключевое слово WITH для его упрощения.Ключевое слово WITH используется в SQL для создания временных таблиц или подзапросов٫ которые можно затем использовать в основном запросе. Это позволяет нам разделить запрос на более простые и удобочитаемые части.Чтобы переписать мой предыдущий запрос с использованием ключевого слова WITH٫ я сначала создам временную таблицу с фильмами٫ которые удовлетворяют условию аренды более 2 долларов. Используя WITH٫ я назову эту временную таблицу ″rental_films″⁚
sql
WITH rental_films AS (
SELECT film_id, title, length, rental_rate
FROM film
WHERE rental_rate > 2
ORDER BY length DESC
LIMIT 40
)
В этой части запроса я выбираю поля film_id, title, length и rental_rate из таблицы film, где значение поля rental_rate больше 2. Я также сортирую результаты по полю length в порядке убывания и ограничиваю выборку первыми 40 записями.Затем я могу использовать временную таблицу ″rental_films″, чтобы получить данные о возрастных рейтингах фильмов и выгрузить их в итоговую таблицу. Вот как это можно сделать⁚
sql
SELECT rating AS возрастной_рейтинг,
MIN(length) AS min_length,
MAX(length) AS max_length,
AVG(length) AS avg_length,
MIN(rental_rate) AS min_rental_rate,
MAX(rental_rate) AS max_rental_rate,
AVG(rental_rate) AS avg_rental_rate
FROM rental_films
GROUP BY rating
В этой части запроса я выбираю поля rating, length и rental_rate из временной таблицы ″rental_films″. Затем я группирую результаты по полю rating и вычисляю минимальное, максимальное и среднее значения для полей length и rental_rate.
В итоговой таблице я буду иметь следующие поля⁚ возрастной_рейтинг, min_length, max_length, avg_length, min_rental_rate, max_rental_rate и avg_rental_rate.
Теперь мой запрос стал гораздо более читаемым и удобным в использовании. Я использовал ключевое слово WITH, чтобы разделить его на две части ⎻ выборку фильмов и анализ данных. Это помогает мне лучше структурировать и понять мои запросы.
Я надеюсь, что этот пример поможет вам лучше понять, как использовать ключевое слово WITH в SQL для переписи запросов и анализа данных.