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 usersSUM(CASE … THEN 1 ELSE 0 END)와 COUNT(CASE … THEN 1 END)는 개수를 셀 때 동일한 결과를 제공합니다. 팀에서 선호하는 스타일을 선택하세요.
챌린지
쉬움사용 가능한 테이블 및 열:
transactions:id,category,type,amount
type은 'sale' 또는 'refund'입니다. 각 category에 대해 다음을 반환하세요:
categorynet_revenue: 판매 금액의 합계 빼기 환불 금액의 합계
환불 금액이 음수로 기여하도록 하나의 SUM(CASE …) 표현식으로 net_revenue를 계산하세요. net_revenue를 내림차순으로 정렬하세요.
직접 해보기
SELECT category,
-- 환불을 음수로 세는 하나의 SUM(CASE ...)
FROM transactions
GROUP BY category
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
심화 과정의 모든 레슨
직접 연습해 보세요: SQL 플레이그라운드