Menu
Coddy logo textTech

CASE를 활용한 SUM

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

같은 아이디어가 SUM에서도 작동하며, 더욱 유연합니다. CASE는 일치하는 행에 대해 1을, 그 외의 모든 행에 대해 0을 반환할 수 있고, 행에 서로 다른 가중치를 적용하기 위해 임의의 숫자 값을 반환할 수도 있습니다.

SELECT
    SUM(CASE WHEN status = 'active' THEN 1 ELSE 0 END) AS active_count,
    SUM(CASE WHEN plan = 'pro' THEN amount ELSE 0 END) AS pro_revenue
FROM users

SUM(CASE … THEN 1 ELSE 0 END)COUNT(CASE … THEN 1 END)는 개수를 셀 때 동일한 결과를 제공합니다. 팀에서 선호하는 스타일을 선택하세요.

challenge icon

챌린지

쉬움

사용 가능한 테이블 및 열:

  • transactions: id, category, type, amount

type'sale' 또는 'refund'입니다. 각 category에 대해 다음을 반환하세요:

  • category
  • net_revenue: 판매 금액의 합계 빼기 환불 금액의 합계

환불 금액이 음수로 기여하도록 하나의 SUM(CASE …) 표현식으로 net_revenue를 계산하세요. net_revenue를 내림차순으로 정렬하세요.

직접 해보기

SELECT category,
       -- 환불을 음수로 세는 하나의 SUM(CASE ...)
FROM transactions
GROUP BY category
quiz icon실력 점검

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

심화 과정의 모든 레슨

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