All thing of the world!

Oracle GROUP_ID 설명 : 오라클 함수 본문

IT/Oracle DBMS

Oracle GROUP_ID 설명 : 오라클 함수

WorldSeeker 2021. 4. 6. 09:10

1. 함수의 목적 

    Oracle GROUP_ID는 GROUP_BY에 의해 생성된 결과의 ROW가 중복인지 아닌지 판별한다.

2. 샘플을 통한 개념 퀵뷰

GROUP BY에 의해 집계된 결과행이 중복이라면 g컬럼으로 1을 반환하고, 아니라면 0을 반환한다.

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;


3. 사용방법 


4. 함수 PARAMETER 설명


5. 다양한 샘플표현

example1) 2.샘플을 통한 퀵뷰의 쿼리를 응용하여 group by 결과집합에서 having절을 사용하여 중복을 제거한다.

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) )
   
HAVING GROUP_ID() < 1;

 

Comments