Menu
Coddy logo textTech

전체 대비 비율

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으로 반올림됩니다.

challenge icon

챌린지

쉬움

사용 가능한 테이블 및 열:

  • sales: category, product, revenue

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

  • category
  • product
  • revenue
  • pct_of_category: 해당 category 내에서 제품이 차지하는 revenue 비율을 소수점 첫째 자리까지 반올림한 값

윈도우에서 PARTITION BY를 사용하세요. category순으로 정렬한 다음 pct_of_category를 내림차순으로 정렬하세요.

직접 해보기

SELECT category, product, revenue,
       -- 카테고리 내 점유율인 pct, PARTITION BY 사용
FROM sales
quiz icon실력 점검

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

심화 과정의 모든 레슨

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