728x90
GROUP_ID
구문
GROUP_ID( )
목적
GROUP_ID 함수는 GROUP BY 절로 생성된 중복 그룹들을 구별합니다. 이 함수는 쿼리 결과에서 중복 그룹을 필터링하는 데 유용합니다. GROUP_ID 함수는 Oracle NUMBER를 반환하여 중복 그룹을 고유하게 식별합니다. 이 함수는 GROUP BY 절이 포함된 SELECT 문에서만 사용할 수 있습니다.
특정 그룹에 n개의 중복이 존재하는 경우, GROUP_ID 함수는 0부터 n-1까지의 숫자를 반환합니다.
예제
다음 예제는 샘플 테이블 sh.countries와 sh.sales에서 수행된 쿼리의 중복된 co.country_region 그룹에 값 1을 할당합니다.
SELECT co.country_region, co.country_subregion,
SUM(s.amount_sold) "Revenue", GROUP_ID() g
FROM sales s, customers c, countries co
WHERE s.cust_id = c.cust_id
AND c.country_id = co.country_id
AND s.time_id = '1-JAN-00'
AND co.country_region IN ('Americas', 'Europe')
GROUP BY GROUPING SETS ( (co.country_region, co.country_subregion),
(co.country_region, co.country_subregion) )
ORDER BY co.country_region, co.country_subregion, "Revenue", g;
COUNTRY_REGION COUNTRY_SUBREGION Revenue G
-------------------- ------------------------------ ---------- ----------
Americas Northern America 944.6 0
Americas Northern America 944.6 1
Europe Western Europe 566.39 0
Europe Western Europe 566.39 1
다음과 같이 구문의 끝에 다음 HAVING 절을 추가하여 GROUP_ID < 1인 행만 반환되도록 처리하세요:
HAVING GROUP_ID() < 1
출처: 오라클 레퍼런스
원문 링크: Oracle GROUP_ID 함수 문서
반응형
'코딩 > 오라클 함수' 카테고리의 다른 글
[오라클 레퍼런스 함수] GROUPING_ID - GROUPING 비트 벡터 반환 (0) | 2023.08.06 |
---|---|
[오라클 레퍼런스 함수] GROUPING - 슈퍼집계(superaggregate) 행 구별 (0) | 2023.08.06 |
[오라클 레퍼런스 함수] GREATEST - 가장 큰 값 반환 (0) | 2023.08.06 |
[오라클 레퍼런스 함수] FROM_TZ - TIMESTAMP WITH TIME ZONE 값으로 변환 (0) | 2023.08.06 |
[오라클 레퍼런스 함수] FLOOR - 소수점 이하 절사 (0) | 2023.08.06 |
댓글