Menu
Coddy logo textTech

CASE를 활용한 COUNT

Coddy SQL 여정의 심화 과정 섹션에 포함된 레슨. 27개 중 12번째.

집계 함수 안에 CASE 표현식을 넣을 수 있습니다. 핵심은 COUNTNULL을 무시한다는 점입니다. 따라서 ELSE가 없는 CASE는 조건과 일치하는 행만 계산합니다.

SELECT
    COUNT(*) AS total,
    COUNT(CASE WHEN status = 'active' THEN 1 END) AS active_count
FROM users

이제 active_count는 전체 쿼리를 필터링하지 않았는데도 'active' 행의 개수입니다. 이것이 여러분이 작성하게 될 모든 다중 지표 대시보드 쿼리의 핵심 요령입니다.

challenge icon

챌린지

쉬움

사용 가능한 테이블 및 열:

  • orders: id, customer_id, status

customer_id에 대해 다음을 반환하세요:

  • customer_id
  • total: 해당 고객이 주문한 총 주문 수
  • shipped: status = 'shipped'인 항목의 수
  • cancelled: status = 'cancelled'인 항목의 수

취소된 주문이 하나 이상 있는 고객만 반환하세요. customer_id순으로 정렬하세요.

직접 해보기

SELECT customer_id,
       COUNT(*) AS total,
       -- shipped, cancelled를 COUNT(CASE ...)로 처리
FROM orders
GROUP BY customer_id
-- 최소 한 번 이상 취소한 고객으로 필터링
ORDER BY customer_id
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

심화 과정의 모든 레슨

직접 연습해 보세요: SQL 플레이그라운드