

 Amazon Redshift 將不再支援從修補程式 198 開始建立新的 Python UDFs。現有 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>

賦值子查詢是括號中的正規 SELECT 查詢，只會傳回一個值 (一列和一個資料欄)。執行此查詢後，傳回的值會在外層的查詢中使用。如果子查詢傳回 0 列，則子查詢表達式的值為 null。如果子查詢傳回超過一列，Amazon Redshift 會傳回錯誤。子查詢可以參照父查詢傳來的變數，此變數會在子查詢的任何一次叫用期間中，做為常數使用。

您可以在叫用表達式的大多數陳述式中，使用賦值子查詢。賦值子查詢在下列的情況中並非有效的表達式：
+ 做為表達式的預設值
+ 在 GROUP BY 和 HAVING 子句中

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

下列的子查詢會針對 2008 年一整年，計算出每次銷售平均支付的價格，外層的查詢接著會使用輸出中的此值，來比較每季的銷售平均價格：

```
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)
```