

 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/)을 참조하세요.

# COUNT 창 함수
<a name="r_WF_COUNT"></a>

 COUNT 창 함수는 표현식에서 정의하는 행의 수를 계산합니다.

COUNT 함수는 2가지 변형이 있습니다. COUNT(\$1)는 NULL 값의 유무에 상관없이 대상 테이블에서 모든 행의 수를 계산합니다. COUNT(expression)는 특정 열 또는 표현식에서 NULL을 제외한 값이 포함된 행의 수를 계산합니다.

## 구문
<a name="r_WF_COUNT-synopsis"></a>

```
COUNT ( * | [ ALL ] expression) OVER
(
[ PARTITION BY expr_list ]
[ ORDER BY order_list 
                        frame_clause ]
)
```

## 인수
<a name="r_WF_COUNT-arguments"></a>

 * expression*   
함수가 실행되는 대상 열 또는 표현식입니다.

ALL   
인수가 ALL일 때는 함수가 표현식의 모든 중복 값을 그대로 유지한 채 행의 수를 계산합니다. ALL이 기본값입니다. DISTINCT는 지원되지 않습니다.

OVER   
집계 함수의 창 절을 지정합니다. OVER 절은 창 집계 함수와 일반적인 집합 집계 함수를 구분하는 역할을 합니다.

PARTITION BY *expr\$1list*   
하나 이상의 표현식과 관련하여 COUNT 함수의 창을 정의합니다.

ORDER BY *order\$1list*   
각 파티션의 행을 정렬합니다. PARTITION BY를 지정하지 않으면 ORDER BY가 전체 테이블을 사용합니다.

 *frame\$1clause*   
집계 함수에서 ORDER BY 절이 사용되면 명시적인 프레임 절이 필요합니다. 프레임 절은 순서가 지정된 결과 내에 행 집합을 추가하거나 제거함으로써 함수의 창에 포함되는 행 집합을 정제하는 역할을 하며, ROWS 키워드와 관련 지정자로 구성됩니다. [창 함수 구문 요약](c_Window_functions.md#r_Window_function_synopsis) 섹션을 참조하세요.

## 데이터 타입
<a name="c_Supported_data_types_wf_count"></a>

COUNT 함수는 모든 인수 데이터 형식을 지원합니다.

COUNT 함수에서 지원되는 반환 형식은 BIGINT입니다.

## 예제
<a name="r_WF_COUNT-examples"></a>

 다음 예에서는 데이터 윈도의 시작부터 판매 ID, 수량 및 모든 행의 수를 보여줍니다.

```
select salesid, qty,
count(*) over (order by salesid rows unbounded preceding) as count
from winsales
order by salesid;

salesid | qty | count
---------+-----+-----
10001 |  10 |   1
10005 |  30 |   2
10006 |  10 |   3
20001 |  20 |   4
20002 |  20 |   5
30001 |  10 |   6
30003 |  15 |   7
30004 |  20 |   8
30007 |  30 |   9
40001 |  40 |   10
40005 |  10 |   11
(11 rows)
```

요청 데이터에 대한 설명은 [창 함수 예제를 위한 샘플 테이블](c_Window_functions.md#r_Window_function_example) 섹션을 참조하세요.

다음 예에서는 데이터 윈도의 시작부터 판매 ID, 수량 및 null이 아닌 행의 수를 보여줍니다. WINSALES 테이블의 QTY\$1SHIPPED 열에는 일부 NULL이 포함되어 있습니다.

```
select salesid, qty, qty_shipped,
count(qty_shipped)
over (order by salesid rows unbounded preceding) as count
from winsales
order by salesid;

salesid | qty | qty_shipped | count
---------+-----+-------------+-------
10001 |  10 |          10 |   1
10005 |  30 |             |   1
10006 |  10 |             |   1
20001 |  20 |          20 |   2
20002 |  20 |          20 |   3
30001 |  10 |          10 |   4
30003 |  15 |             |   4
30004 |  20 |             |   4
30007 |  30 |             |   4
40001 |  40 |             |   4
40005 |  10 |          10 |   5
(11 rows)
```