スカラーサブクエリ - Amazon Redshift

スカラーサブクエリ

スカラーサブクエリとは、ちょうど 1 つの値 (1 つの列を含む 1 つの行) を返す、括弧で囲まれた通常の SELECT クエリです。実行されたこのクエリが返す値は、外部のクエリで使用されます。サブクエリが 0 行ゼロを返した場合、サブクエリ式の値は Null になります。サブクエリが複数の行を返した場合、Amazon Redshift はエラーを返します。サブクエリは親クエリからの変数を参照することができます。この変数はサブクエリの起動時中には定数として働きます。

式を呼び出すほとんどのステートメントでスカラーサブクエリを使用できます。次のような場合、スカラーサブクエリは有効な式でなくなります。

  • 式のデフォルト値として使用

  • GROUP BY 句および HAVING 句内に使用

次のサブクエリは 2008 年の 1 年を通して販売 1 回あたりに支払われた平均料金を計算します。次に、外側のクエリが出力にその値を使用して、四半期ごとの販売 1 回あたりの平均料金と比較します。

select qtr, avg(pricepaid) as avg_saleprice_per_qtr, (select avg(pricepaid) from sales join date on sales.dateid=date.dateid where year = 2008) as avg_saleprice_yearly from sales join date on sales.dateid=date.dateid where year = 2008 group by qtr order by qtr; qtr | avg_saleprice_per_qtr | avg_saleprice_yearly -------+-----------------------+---------------------- 1 | 647.64 | 642.28 2 | 646.86 | 642.28 3 | 636.79 | 642.28 4 | 638.26 | 642.28 (4 rows)