[SELECT GROUP 예제]

 

☞ GROUP 관련 기본문장형태

 

   SELECT 칼럼명, GROUP 함수
   
FROM   테이블명
   
WHERE  조건식
   
GROUP BY 칼럼명
   
HAVING 조건식
   
ORDER BY 칼럼이나 표현식 ;

☞ SUBGROUP으로 데이터 분류

 

   ※ SELECT절에 그룹함수가 오면 SELECT절의 나머지 컬럼은 GROUP BY절에 기술되어야 함
   ※ GROUP에 대한 조건은 WHERE절에서 기술할 수 없고, HAVING절에서 기술하여야 함
   예시)
     
SELECT dept_id , AVG(salary)
     
FROM   EMP_PAY
     
GROUP BY dept_id
     
HAVING AVG(salary) >= 2000 ;

GROUP된 데이터 조건 검색

 

   예시) 각 직책별로 급여의 총합을 구하되 직책이 부장인 사람은 제외하시오.
           단, 급여총합이 10000이상인 직책만 나타내며, 급여총합에 대한 오름차순으로 정렬하시오.

   SQL>
SELECT title , SUM(salary) 급여총합
        
FROM   EMP_PAY
        
WHERE  title NOT LIKE ‘%부장’
        
GROUP BY title
        
HAVING SUM(salary) >= 10000
        
ORDER BY SUM(salary) ;

☞ ROLLUP과 CUBE를 이용한 데이터 집계

 

   예시)
   
SELECT  store_name "대리점", TO_CHAR(sale_date,'MM') "월", SUM(sale_price) "총판매액"
   
FROM    PROD_SALES
   
GROUP BY  ROLLUP  ( store_name , TO_CHAR
(sale_date,'MM') ) ;

   결과)
   [ROLLUP]
   대리점  월  총판매액  
   --------------------  
   강남점  10   400      
   강남점  11   400
   강남점  12  1400
   강남점      2200

   서초점  10   800
   서초점  11   400
   서초점  12   500
   서초점      1700
               3900

   [CUBE] 
   대리점  월  총판매액
   --------------------
   강남점  10  400
   강남점  11  400
   강남점  12 1400
   강남점     2200

   서초점  10  800
   서초점  11  400
   서초점  12  500
   서초점     1700
           10 1200
           11  800
           12 1900
              3900


 

'(DB) Oracle > SQL' 카테고리의 다른 글

Oracle - 예제_UPDATE  (0) 2017.01.18
Oracle - 예제_SUBQUERY  (0) 2017.01.18
Oracle - 예제_SELECT  (0) 2017.01.18
Oracle - 예제_MERGE  (0) 2017.01.18
Oracle - 예제_INSERT  (0) 2017.01.18
Posted by 농부지기
,