各動物園で最も古い動物を見つける必要があるとしましょう。これは、典型的な最大グループ クエリです。ここだけが複雑です。シマウマとキリンは別々のテーブルに格納されています。キリンであれシマウマであれ、すべての動物のリストを取得するには、次のようにします。
(SELECT id,zoo,age FROM zebras
UNION ALL
SELECT id,zoo,age FROM giraffes) t1
次にt1
、 を指定すると、典型的な最大グループ クエリを作成できます。
SELECT t1.*
FROM t1
JOIN
(SELECT zoo,max(age) as max_age
FROM t1
GROUP BY zoo) t2
ON (t1.zoo = t2.zoo)
明らかにt1
、一時テーブルとして保存できますが、これをすべて 1 つのクエリ内で、定義を繰り返すことなく実行できる方法はありますt1
か? (テーブル設計の変更については議論しないでください。サブクエリの結果を扱う問題に焦点を当てたいと思います。)