2

ここで利用可能な sakila データベースから、各カテゴリで次の 5 つの最も長い映画を見つけたいと思います。この問題を作りました。クエリの使用

SELECT fl.title, fl.length, ct.name
FROM film fl JOIN film_category fc ON fl.film_id=fc.film_id
             JOIN category ct ON ct.category_id=fc.category_id
WHERE fl.length > (SELECT AVG(fl.length) 
                   FROM film fl JOIN film_category fc ON fl.film_id = fc.film_id
                   JOIN category cat ON cat.category_id=fc.category_id
                   WHERE cat.name=ct.name);

長さがそれぞれのカテゴリのフィルムの平均より長いすべてのフィルムを見つけることができます。を追加するLIMIT 5と、取得されるのは 5 行のみです。各カテゴリから 5 行を取得する必要があります。追加するGROUP BY ct.nameと、各カテゴリから 1 つ - 16 行のみが得られます。

  1. これを行うクエリは何ですか?
  2. 相関サブクエリを使用せずにこれを達成することは可能でしょうか?
  3. テーブルを結合することによって相関サブクエリの結果が得られるかどうかを確認するにはどうすればよいですか?

これに似ていると思いますが、解決策がわかりませんでした。

ありがとう!

4

1 に答える 1