PostgreSQL 기초강의, PostgreSQL 기초강좌
92강 SQL 함수 정리 : PostgreSQL NTILE Function
SQL 함수 정리 92강 시작합니다.
이번 시간에는
▶ PostgreSQL NTILE Function
에 대해서 알아보는 시간입니다.
이번 시간에는 PostgreSQL NTILE() 함수를 사용하여 파티션의 정렬된 행을 지정된 수의 순위 버킷으로 나누는 방법에 대해 알아봅니다.
PostgreSQL NTILE() 함수 소개
PostgreSQL NTILE() 함수를 사용하면 파티션의 정렬된 행을 지정된 수의 순위 그룹으로 가능한 동일한 크기로 나눌 수 있습니다. 이러한 순위 그룹을 버킷이라고 합니다.
NTILE() 함수는 각 그룹에 1부터 시작하는 버킷 번호를 할당합니다. 그룹의 각 행에 대해 NTILE() 함수는 해당 행이 속한 그룹을 나타내는 버킷 번호를 할당합니다.
NTILE() 함수의 구문은 다음과 같습니다:
NTILE(buckets) OVER (
[PARTITION BY partition_expression,... ]
[ORDER BY sort_expression [ASC | DESC],...]
)
구문을 자세히 살펴보겠습니다:
buckets
버킷은 순위가 매겨진 그룹의 수를 나타냅니다. 각 파티션에 대해 양수 값(0보다 큰)으로 평가하는 숫자 또는 식을 사용할 수 있습니다. 버킷은 null일 수 없습니다.
PARTITION BY
PARTITION BY 절은 행을 함수가 적용되는 파티션으로 분할합니다.
PARTITION BY 절은 선택 사항입니다. 건너뛸 경우 함수는 전체 결과 집합을 단일 파티션으로 처리합니다.
ORDER BY
ORDER BY 절은 함수가 적용되는 각 파티션의 행을 정렬합니다.
ORDER BY 절은 선택 사항입니다. 그러나 예상 결과를 얻으려면 항상 ORDER BY 절을 사용해야 합니다.
행 수를 버킷으로 나눌 수 없는 경우 NTILE() 함수는 두 크기의 그룹을 하나씩 반환합니다. 큰 그룹은 항상 ORDER BY 절에서 지정한 순서대로 작은 그룹보다 먼저 옵니다.
PostgreSQL NTILE() 함수 예제
NTILE() 함수를 사용하는 몇 가지 예를 들어 보겠습니다.
CUME_DIST() 함수 강의에서 생성된 sales_stats 테이블을 사용하여 NTILE() 함수를 시연합니다.
테이블의 내용입니다.
1) 결과 집합 예제에서 PostgreSQL NTILE() 함수 사용
이 예에서는 NTILE() 함수를 사용하여 행을 3개의 버킷으로 분산합니다:
SELECT
name,
amount,
NTILE(3) OVER(
ORDER BY amount
)
FROM
sales_stats
WHERE
year = 2019;
버킷의 수를 변경하면서 결과를 확인해 보세요.
2) 파티션 예제에서 PostgreSQL NTILE() 함수 사용
이 예에서는 NTILE() 함수를 사용하여 sales_stats 테이블의 행을 각각 두 개의 파티션과 세 개의 버킷으로 나눕니다:
SELECT
name,
amount,
NTILE(3) OVER(
PARTITION BY year
ORDER BY amount
)
FROM
sales_stats;
버킷의 수를 변경하면서 결과를 확인해 보세요.
PostgreSQL NTILE() 함수를 사용하여 파티션 내에서 순서가 지정된 수의 순위 그룹으로 행을 분배하는 방법에 대해 배웠습니다.
감사합니다.
본 강의는 PostgreSQL Tutorial을 참조합니다. https://www.postgresqltutorial.com/ |
Do it! SQL을 찾아 주셔서 감사합니다. 공감 ♥ , 댓글이 큰 힘이 됩니다. |
'IT > SQL 기초강좌 (PostgreSQL)' 카테고리의 다른 글
94강 SQL 함수 정리 : PostgreSQL Date/Time Operators (116) | 2023.02.05 |
---|---|
93강 SQL 함수 정리 : PostgreSQL NTH_VALUE Function (69) | 2023.02.04 |
91강 SQL 함수 정리 : PostgreSQL LAG Function (88) | 2023.02.02 |
90강 SQL 함수 정리 : PostgreSQL LEAD Function (99) | 2023.02.01 |
89강 SQL 함수 정리 : PostgreSQL LAST_VALUE Function (135) | 2023.01.31 |
댓글