

 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_compound_expressions"></a>

複合式は、一連の単純式が算術演算子によって結合されたものです。複合式内で使用される単純式は、数値を返す必要があります。

## 構文
<a name="r_compound_expressions-synopsis"></a>

```
expression 
operator 
expression | (compound_expression)
```

## 引数
<a name="r_compound_expressions-arguments"></a>

 *expression*   
評価して値を返す単純式。

 *operator*   
 複合演算式は、以下の演算子 (優先順位は列記順) を使用して作成することができます。  
+ ( ) : 評価の順番を制御する括弧
+ \$1 , - : 正および負の符号/演算子
+  ^ , \$1/ , \$1\$1/ : 指数、平方根、立方根
+ \$1 , / , % : 乗算演算子、除算演算子、モジュロ演算子
+  @ : 絶対値
+ \$1 , - : 加算および減算
+ & , \$1, \$1, \$1, <<, >> : AND、OR、NOT、左シフト、右シフトのビット演算子
+ \$1\$1: 連結

 *(compound\$1expression)*   
複合式は括弧を使用して入れ子にすることができます。

## 例
<a name="r_compound_expressions-examples"></a>

複合式の例を以下に示します。

```
('SMITH' || 'JONES')
sum(x) / y
sqrt(256) * avg(column)
rank() over (order by qtysold) / 100
(select (pricepaid - commission) from sales where dateid = 1882) * (qtysold)
```

また、一部の関数は、他の関数内に入れ子にすることができます。例えば、任意のスカラー関数を別のスカラー関数内に入れ子にすることができます。次の例では、一連の数の絶対値の合計を返します。

```
sum(abs(qtysold))
```

ウィンドウ関数は、集計関数または他のウィンドウ関数の引数として使用できません。次の式は、エラーを返すことになります。

```
avg(rank() over (order by qtysold))
```

ウィンドウ関数には入れ子にした集計関数を含めることができます。次の式は、値セットの合計を出し、ランク付けします。

```
rank() over (order by sum(qtysold))
```