데이터분석공부 중, 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' 컬럼에 갯수를 카운팅한다.
'데이터분석공부' 카테고리의 다른 글
데이터분석공부 기초SQL 순위함수 ROW NUMBER, RANK OVER, DENSE RANK (0) | 2022.05.28 |
---|---|
데이터분석공부 기초SQL To char / To date (0) | 2022.05.28 |
데이터분석공부 SQL LIKE % (0) | 2022.05.28 |
데이터분석공부 SQL LEFT JOIN 이란? (0) | 2022.05.28 |
기초코딩공부, SQL 서브쿼리란? (0) | 2022.05.28 |