

 Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の Python UDF は、2026 年 6 月 30 日まで引き続き機能します。詳細については、[ブログ記事](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)を参照してください。

# スカラーサブクエリ
<a name="r_scalar_subqueries"></a>

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

式を呼び出すほとんどのステートメントでスカラーサブクエリを使用できます。次のような場合、スカラーサブクエリは有効な式でなくなります。
+ 式のデフォルト値として使用
+ GROUP BY 句および HAVING 句内に使用

## 例
<a name="r_scalar_subqueries-example"></a>

次のサブクエリは 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)
```