7.2 サブクエリの発展
ここからは、サブクエリの発展的な使い方を説明します。
7.2.1 「FROM」句でのサブクエリ
前節では「WHERE」句の条件としてサブクエリを使用しましたが、サブクエリは「WHERE」句だけで使われるわけではありません。まず「FROM」句での使用例から見ていきます。「FROM」句でサブクエリを使用する場合の書式は下記のようになります。
例えば「bookinfo」と「orderinfo」を結合して注文金額を算出し、ユーザーごとの受注金額を集計した後にその受注金額の最大値を取得するケースを考えてみましょう。受注金額の集計までは、これまで学習したDML文で取得することができます。
この集計した値を元に最大の注文金額を取得するには、先に示したDML文をサブクエリとして「FROM」句に入れ、テーブルと見做すことで実現できます。DML文は下記のようになります。
7.2.2 「SELECT」句でのサブクエリ
次に「SELECT」句でのサブクエリの使用方法について見てみましょう。書式は下記のようになります。
「orderinfo」でユーザー毎の受注数量と全体の受注数量を対比して見たい場合などは下記のようなサブクエリで取得することができます。
7.2.3 「HAVING」句でのサブクエリ
「HAVING」句でもサブクエリが使えます。書式は下記のようになります。
「orderinfo」でユーザー毎の受注数量と全体の受注数量を対比して見たい場合などは下記のようなサブクエリで取得することができます。「orderinfo」で、注文数が平均注文数を下回っているユーザーを取得したい場合などは、下記のようなDML文で取得可能です。