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 |