PostgreSQL 기초강의, PostgreSQL 기초강좌, PostgreSQL 함수
88강 SQL 함수 정리 : PostgreSQL FIRST_VALUE Function
SQL 함수 정리 88강 시작합니다.
이번 시간에는
▶ PostgreSQL FIRST_VALUE Function
에 대해서 알아보는 시간입니다.
PostgreSQL FIRST_VALUE() 함수를 사용하여 결과 집합의 정렬된 파티션에서 첫 번째 값을 반환하는 방법에 대해 알아봅니다.
PostgreSQL FIRST_VALUE() 함수 소개
FIRST_VALUE() 함수는 결과 집합의 정렬된 파티션에서 첫 번째 행에 대해 평가된 값을 반환합니다.
FIRST_VALUE() 함수의 구문은 다음과 같습니다:
FIRST_VALUE ( expression )
OVER (
[PARTITION BY partition_expression,... ]
ORDER BY sort_expression [ASC | DESC], ...
[specified_rows_range_clause]
)
이 구문은
expression
식은 결과 집합의 정렬된 파티션의 첫 번째 행 값에 대해 계산되는 식, 열 또는 하위 쿼리일 수 있습니다. 식에서 단일 값을 반환해야 합니다.
PARTITION BY clause
PARTITION BY를 사용하면 테이블 행이 FIRST_VALUE 함수가 정의된 파티션으로 분할됩니다.
ORDER BY clause
모든 파티션에서 테이블 행의 순서를 정렬하기 위해 ORDER BY 절을 사용합니다.
rows_range_clause
지정된_rows_range_clause는 파티션 내에서 시작 및 종료 위치를 지정하여 모든 파티션에서 테이블 행의 제한을 미세 조정합니다.
PostgreSQL FIRST_VALUE() 함수 예제
window function 메뉴에서 생성된 products table을 시연에 사용합니다:
products table의 데이터는 다음과 같습니다:
1) 결과 집합 예제에 PostgreSQL FIRST_VALUE() 함수 사용
다음 문은 FIRST_VALUE() 함수를 사용하여 모든 제품과 가장 낮은 가격의 제품을 반환합니다:
SELECT
product_id,
product_name,
group_id,
price,
FIRST_VALUE(product_name)
OVER(
ORDER BY price
) lowest_price
FROM
products;
위 예에서
- FIRST_VALUE() 함수에서 PARTITION BY 절을 건너뛰었기 때문에 함수는 전체 결과 집합을 단일 파티션으로 처리했습니다.
- ORDER BY 조항은 제품을 낮은 가격에서 높은 가격으로 정렬합니다.
- FIRST_VALUE() 함수는 전체 결과 집합에 적용되며 첫 번째 행의 product_name열에서 값을 선택합니다.
2) 파티션 예제에서 FIRST_VALUE() 함수 사용
이 문은 FIRST_VALUE() 함수를 사용하여 제품 그룹별로 그룹화된 모든 제품을 반환합니다. 그리고 각 제품군에 대해 가장 낮은 가격으로 제품을 반환합니다:
SELECT
product_id,
product_name,
group_id,
price,
FIRST_VALUE(product_name)
OVER(
PARTITION BY group_id
ORDER BY price
RANGE BETWEEN
UNBOUNDED PRECEDING AND
UNBOUNDED FOLLOWING
) lowest_price
FROM
products;
위 예에서
- PARTITION BY 절은 제품 그룹별로 제품을 나누었습니다.
- ORDER BY 조항은 각 제품군(파티션)의 제품을 낮은 가격에서 높은 가격으로 정렬했습니다.
- Unbounded PRECEDING 절과 Unbounded FOLLOWING절 사이의 범위는 첫 번째 행에서 시작하여 마지막 행에서 끝나는 각 파티션의 프레임을 정의합니다.
- FIRST_VALUE() 함수는 각 파티션에 별도로 적용됩니다.
보충설명 UNBOUNDED PRECEDING : 윈도우의 시작 위치 첫번째 ROW UNBOUNDED FOLLOWING : 윈도우의 마지막 위치 마지막 ROW |
이번 강의에서는 PostgreSQL FIRST_VALUE() 함수를 사용하여 결과 집합의 정렬된 파티션에서 첫 번째 값을 반환하는 방법에 대해 배웠습니다.
감사합니다.
본 강의는 PostgreSQL Tutorial을 참조합니다. https://www.postgresqltutorial.com/ |
Do it! SQL을 찾아 주셔서 감사합니다. 공감 ♥ , 댓글이 큰 힘이 됩니다. |
'IT > SQL 기초강좌 (PostgreSQL)' 카테고리의 다른 글
90강 SQL 함수 정리 : PostgreSQL LEAD Function (99) | 2023.02.01 |
---|---|
89강 SQL 함수 정리 : PostgreSQL LAST_VALUE Function (135) | 2023.01.31 |
87강 SQL 함수 정리 : PostgreSQL PERCENT_RANK Function (117) | 2023.01.29 |
86강 SQL 함수 정리 : PostgreSQL CUME_DIST Function (60) | 2023.01.28 |
85강 SQL 함수 정리 : PostgreSQL DENSE_RANK Function (106) | 2023.01.27 |
댓글