Не понимаю, как правильно использовать подзапросы - PullRequest
0 голосов
/ 29 мая 2020

Я не понимаю, какое ключевое слово или фразу, указывающую на подзапрос, следует использовать для # 2 и # 3.

A. Я заметил, что всякий раз, когда поле упоминается в группе, оно должно быть упомянуто в поле выбора, но в приведенном ниже решении причина, по которой «film_id» не упоминается в первом операторе «выбора», заключается в том, что оно находилось под другим оператор "выбрать" со скобками? Б. Также мое решение дало мне совершенно другой ответ. Почему мы считаем по «id»?

- 2. Выберите максимальное и минимальное количество показов для конкретного фильма.

Мое решение: SELECT max (id), min (id) from (id, count (film_id) as no_films from screenings group by film_id) a;

Решение: ВЫБРАТЬ MAX (id), MIN (id) FROM (SELECT film_id, COUNT (id) AS id FROM screenings GROUP BY film_id) a;


Что касается # 3, я не понимаю мыслительный процесс, стоящий за этим. Почему «показы» не определены или не объединены? Когда используется "as" при использовании оператора count?

- 3. Выберите название каждого фильма и количество показов для этого фильма.

Мое решение:

select f.name, 
(select count(id) as id from screenings s)
from films f
join films f ON s.film_id = f.id;       

Решение:

SELECT name, 
(SELECT COUNT(id) FROM screenings 
WHERE film_id = f.id)
FROM films f;
...