전체 대비 비율
Coddy SQL 여정의 심화 과정 섹션에 포함된 레슨. 27개 중 24번째.
각 행이 전체에서 차지하는 비율은 윈도 함수의 고전적인 사용 사례입니다. 행의 값을 전체 윈도에서 동일한 열의 SUM으로 나눕니다.
SELECT product, revenue,
revenue * 100.0 / SUM(revenue) OVER () AS pct
FROM sales비어 있는 OVER ()는 "전체 결과 집합"을 의미합니다. 대신 그룹 내 비율을 계산하려면 PARTITION BY를 추가하세요(예: 각 category 내 비율을 계산하려면 OVER (PARTITION BY category)).
100.0을 곱하세요(100이 아님). 그래야 나눗셈 결과가 실수로 유지됩니다. 그렇지 않으면 SQLite의 정수 나눗셈으로 인해 작은 share 값이 0으로 반올림됩니다.
챌린지
쉬움사용 가능한 테이블 및 열:
sales:category,product,revenue
각 행에 대해 다음을 반환하세요:
categoryproductrevenuepct_of_category: 해당 category 내에서 제품이 차지하는 revenue 비율을 소수점 첫째 자리까지 반올림한 값
윈도우에서 PARTITION BY를 사용하세요. category순으로 정렬한 다음 pct_of_category를 내림차순으로 정렬하세요.
직접 해보기
SELECT category, product, revenue,
-- 카테고리 내 점유율인 pct, PARTITION BY 사용
FROM sales
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
심화 과정의 모든 레슨
직접 연습해 보세요: SQL 플레이그라운드