본문 바로가기
SQL

[My SQL] CASE 함수

by 김꾸준 2021. 9. 16.

 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