SQL

[TIL] CASE WHEN...THEN...END와 함께 COUNT DISTINCT 사용하기

소금깨 2022. 6. 7. 16:56

📖CASE문을 사용할 때 COUNT DISTINCT를 사용하는 방법 

=> COUNT(DISTINCT CASE WHEN...THEN...END) 

 


sales 테이블에는 판매된 품목의 이름과 구매한 고객의 성함을 기록하는 데이터가 있습니다.

Category Customer_name
공책 Alex
Alex
공책 King
Jim
지우개 Alex 

 

1. 테이블의 총 주문 수를 계산해보자. 

SELECT COUNT(*) AS total_orders
FROM sales;

결과:

total_orders
5

 

2. 고객이 여러 주문을 할 수 있으니, 고유 고객 수를 계산해보자. 

SELECT COUNT(DISTINCT customer_name) AS unique_customer
FROM sales;

결과 :

unique_customer
3

 

3. 고객이 품목을 여러번 구매 할 수 있으므로 각 고객이 구매한 고유 품목 수를 계산해보자.

SELECT 
    COUNT(DISTINCT CASE WHEN customer_name = 'Alex' THEN Category END) AS by_Alex,
    COUNT(DISTINCT CASE WHEN customer_name = 'Jim' THEN Category END) AS by_Jim,
    COUNT(DISTINCT CASE WHEN customer_name = 'King' THEN Category END) AS by_King
FROM 
	sales;

결과:

by_Alex by_Jim by_King
3 1 1