

 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*   
값으로 평가되는 단순 표현식입니다.

 * 연산자*   
 복합 산술 표현식은 다음 연산자의 순서에 따라 작성할 수 있습니다.  
+ ( ) : 평가 순서를 제어하기 위한 괄호
+ \$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))
```