/* Вывести названия всех языков (language.name), на которых нет фильмов в базе данных.

 * Использовать функцию not exists. */


select 

l."name" 

from 

"language" l

where 

not exists (

select 

1

from 

film f 

where 

f.language_id = l.language_id 

);


/* Вывести названия всех фильмов (film.title), в которых снимались актеры с фамилией (actor.last_name) начинающейся на 'Chase'. 

 * Использовать функцию in. */


select 

f.title 

from 

film f 

where 

f.film_id in (

select 

fa.film_id 

from 

film_actor fa 

join actor a 

on fa.actor_id = a.actor_id 

where 

a.last_name like 'Chase%'

);



/* Вывести все фильмы из таблицы film. По каждому фильму отобразить:

 * - название фильма (film.title).

 * - название языка, на котором этот язык снят (language.name).

 * 

 * Названия языка получить с помощью подзапроса в select. */


select 

f.title,

(

select 

l."name" 

from 

"language" l 

where 

l.language_id = f.language_id 

) as language_name

from 

film f 


/* Вывести список всех фильмов. По каждому фильму вывести:

 * - название (film.title).

 * - на сколько дней фильм отдается в сдачу (film.rental_duration).

 * - сколько всего фильмов с таким же значением rental_duration 

 *

 * С помощью подзапроса в блоке from получить таблицу, в которой для каждого значения rental_duration 

 * будет посчитано кол-во фильмов.

*/


select

f.title,

f.rental_duration,

frd.cnt as film_rent_dur_cnt

from 

film f 

join (

select

f2.rental_duration,

count(*) as cnt

from 

film f2 

group by 

f2.rental_duration

) frd

on f.rental_duration = frd.rental_duration

Last modified: Sunday, 18 July 2021, 9:40 AM