Python으로 데이터분석을 하려면 DB에서 Law Data를 불러와야 하기 때문에 SQL 숙지는 필수이다. SQL은 어렵지 않은 언어이지만 반복적으로 사용하는 함수 외에는 잊어버리기 때문에 생산성을 높이기 위해서 주기적으로 복습을 해주는게 좋은 것 같다.
CASE 함수는 주로 Select 문에 쓰이며 특정 조건에 해당하는 데이터를 그룹 지어주거나, 데이터에 직접적으로 변화를 준다. 예를 들어 어떤 이커머스 구매 데이터에서 기구매자(구매 이력이 있는 유저)와 미구매자를 나누어 보고 싶을 때 아래와 같이 CASE 구문을 활용할 수 있다.
SELECT user_id, user_name, buy_cnt
CASE WHEN buy_cnt > 0 THEN 'Buyer'
WHEN buy_cnt < 0 THEN 'Not Buyer'
END group1
FROM sales
비교하고자 하는 조건이 여러 개면 else 구문을 사용할 수 있다. 예를 들어 멤버십 등급이 S인 사람은 보유포인트에 1,000점 더 주고, A인 사람은 500점을 더 주고, 나머지 등급은 그대로 유지할 때 전체 고객의 포인트를 보고 싶을 때 아래와 같이 활용할 수 있다.
SELECT user_id, user_name, mem_grade, point
CASE WHEN mem_grade = 'S' THEN point + 1000
WHEN mem_grade = 'A' THEN point + 500
ELSE point
END point
FROM membership
위 Case 함수에서 mem_grade 컬럼이 반복적으로 쓰이기 때문에 아래와 같이 case와 when 사이에 컬럼명을 넣어 한번만 사용하는 것도 가능하다.
SELECT user_id, user_name, mem_grade, point
CASE mem_grade WHEN 'S' THEN point + 1000
WHEN 'A' THEN point + 500
ELSE point
END point
FROM membership
끝.
'SQL' 카테고리의 다른 글
[My SQL] SET 함수 활용 (0) | 2021.12.21 |
---|