무료 동영상 강의 https://youtu.be/yBfSxlwHloY
집계함수란 데이터를 집계(계산) 처리하는 함수다. 보통 GROUP BY와 함께 사용되며, 그룹별 데이터 값을 집계하기 위해 사용한다. 대표적인 집계함수를 살펴보면 다음과 같다.
이외에도 다양한 집계함수가 있으나, 이 정도만 알아도 SQL을 활용하고 데이터의 기본적인 분석을 수행하는데 전혀 어려움이 없다. 일반적으로 GROUP BY를 사용하는 이유는 그룹별로 데이터를 집계하기 위해서다. 그러므로 GROUP BY와 집계함수는 바늘과 실처럼 자주 붙어 다닌다. (물론 따로 사용되기도 한다.)
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(커피)인 데이터가 네 건 있는 것을 알 수 있다.
