데이터분석공부

데이터분석공부 SQL기초 CASE WHEN THEN ELSE END AS

EFS 2022. 5. 28. 20:57
반응형

데이터분석공부 중, SQL 기초공부중입니다. 요즘 워낙 데이터관련 업무가 뜨다보니 SQL 강의가 넘쳐나고 있는데요. 저는 관심분야이기 때문에 검색을 해놓으면 알아서 자동광고들이 엄청 뜨는데요. 그중 SQL강의광고중에 '구매금액 대 별 고객 수' 더이상 개발자에게 부탁하지 말고 내가 뽑자! 이런식의 광고가 엄청 뜨더라구요. 기업의 고객 로열티를 판가름 하는것이 바로 '구매금액'이기 때문에 다들 어디서나 필요한 데이터여서 그런것 같습니다.



이럴때 쓰는 SQL문이 바로 ' CASE WHEN THEN ELSE END AS ' 입니다 저도 회사에서 많이 본 SQL문인데요.
또 판매금액대 별로 판매되는 아이템의 갯수를 파악해야할 때도 있는데요. 그때도 쓸 수 있는 SQL문입니다. 

쉽게말해,
데이터를 구간 별로 통계값을 측정해야할 때 쓸 수 있는 SQL 문입니다.

 





CASE
WHEN "조건" THEN "조건을 만족하는 데이터"
ELSE "조건을 만족하지 않는 출력 데이터"
END AS 컬럼명


[ 예시 SQL ] 

예) SKU NAME 컬럼안에 있는 SKU들을 판매금액대 별로 집계하고자 할때...


Select yyyy, count (distinct sku name) as sku name case when asp <=5000 then 'below 5000'
when asp>5000 and asp <=10000 then 'below 10000'
when asp>10000 and asp <=20000 then 'below 20000'
when asp>30000 then 'over 30000' end as asp_range
from sku table


풀이) SKU NAME의 각 SKU를 아래 WHEN 다음에 적힌 각 ASP 구간조건에 따라 구간을 나눈값을
- asp가 5000 보다 크고 10000보다 작으면 'below 10000' 값으로 구분
- ~
'asp_range' 컬럼에 갯수를 카운팅한다.

반응형



 

반응형