무료 동영상 강의 https://youtu.be/yBfSxlwHloY

집계함수란?


집계함수란 데이터를 집계(계산) 처리하는 함수다. 보통 GROUP BY와 함께 사용되며, 그룹별 데이터 값을 집계하기 위해 사용한다. 대표적인 집계함수를 살펴보면 다음과 같다.

이외에도 다양한 집계함수가 있으나, 이 정도만 알아도 SQL을 활용하고 데이터의 기본적인 분석을 수행하는데 전혀 어려움이 없다. 일반적으로 GROUP BY를 사용하는 이유는 그룹별로 데이터를 집계하기 위해서다. 그러므로 GROUP BY와 집계함수는 바늘과 실처럼 자주 붙어 다닌다. (물론 따로 사용되기도 한다.)

COUNT


GROUP BY로 만들어진 그룹별로 데이터 건수를 카운트한다.

-- [SQL-5-2-1] Item 데이터 조회
-- GROUP BY 및 집계 처리전 SQL
SELECT  T1.ItemId ,T1.ItemNm ,T1.ItemCat ,T1.HotColdCd
FROM    startdb.Item T1
WHERE   T1.ItemSizeCd = 'REG'
AND     T1.LaunchDt = STR_TO_DATE('20190101','%Y%m%d')
ORDER BY T1.ItemCat;

ItemId  ItemNm               ItemCat  HotColdCd  
------  -------------------  -------  ---------  
HCHR    Hot Chocolate(R)     BEV      HOT        
LEMR    Lemonade(R)          BEV      COLD       
BGLR    Bagel(R)             BKR      HOT        
BMFR    Blueberry Muffin(R)  BKR      COLD       
CMFR    Chocolate Muffin(R)  BKR      COLD       
AMR     Americano(R)         COF      HOT        
CLR     Cafe Latte(R)        COF      HOT        
IAMR    Iced Americano(R)    COF      COLD       
ICLR    Iced Cafe Latte(R)   COF      COLD 

-- [SQL-5-2-2] [SQL-5-2-1]을 ItemCat별 집계(카운트) 처리
SELECT  T1.ItemCat
         ,COUNT(*) CNT
FROM    startdb.Item T1
WHERE   T1.ItemSizeCd = 'REG'
AND     T1.LaunchDt = STR_TO_DATE('20190101','%Y%m%d')
GROUP BY T1.ItemCat
ORDER BY T1.ItemCat;

ItemCat  CNT  
-------  ---  
BEV      2    
BKR      3    
COF      4 

GROUP BY와 함께 COUNT 집계함수를 사용하면, 그룹별로 그룹을 구성한 데이터의 건수가 카운트된다. 결과를 보면, 상품카테고리(ItemCat)가 BEV(음료)인 상품이 두 건, BKR(베이커리) 상품이 세 건, COF(커피)인 데이터가 네 건 있는 것을 알 수 있다.

Untitled