집계 함수
Coddy SQL 여정의 기초 섹션에 포함된 레슨. 72개 중 68번째.
집계 함수는 현재 행까지 AVG() 또는 MAX()나 다른 집계 함수의 값을 계산하는 데 사용됩니다.
예를 들어, 각 종료 기간까지 얻은 최대 revenue를 계산할 수 있습니다:
| month | revenue | region |
| 4 | 40 | East |
| 5 | 20 | East |
| 6 | 60 | West |
| 7 | 55 | West |
| 8 | 61 | East |
SELECT month, revenue, MAX(revenue) OVER (ORDER BY month ASC) as max_revenue
from table1다음을 반환합니다:
| month | revenue | max_revenue |
| 4 | 40 | 40 |
| 5 | 20 | 40 |
| 6 | 60 | 60 |
| 7 | 55 | 60 |
| 8 | 61 | 61 |
4월과 5월의 최대 revenue는 40이고, 6월과 7월에는 60이며, 8월에는 61입니다. 새로운 더 큰 revenue를 찾으면 이전 값을 버리고 그때까지의 가장 큰 값을 사용하기 때문입니다.
AVG() 함수는 다음과 같이 표시됩니다:
SELECT month, revenue, AVG(revenue) OVER (ORDER BY month ASC) as avg_revenue
from table1| month | revenue | avg_revenue |
| 4 | 40 | 40 |
| 5 | 20 | 30 |
| 6 | 60 | 40 |
| 7 | 55 | 43.75 |
| 8 | 61 | 47.2 |
PARTITION BY를 사용하면 특정 category별로 계산을 그룹화할 수도 있습니다. 예:
SELECT month, revenue, region,
MAX(revenue) OVER (PARTITION BY region ORDER BY month ASC) as max_revenue
FROM table1다음과 같은 결과를 얻습니다:
| month | revenue | region | max_revenue |
| 4 | 40 | East | 40 |
| 5 | 20 | East | 40 |
| 6 | 60 | West | 60 |
| 7 | 55 | West | 60 |
| 8 | 61 | East | 61 |
이제 각 region별로 최대값이 별도로 계산됩니다. East region과 West region은 각각 독립적으로 자체 누적 최대값을 유지합니다.
챌린지
쉬움사용 가능한 테이블 및 열:
books:book,page,words
각 책에 대해 책 이름, 전체 페이지 수, 각 페이지의 단어 수를 표시하고 다음을 계산하세요:
- 해당 책의 모든 페이지에서 발견되는 최대 단어 수
- 책 전체의 페이지당 평균 단어 수
- 현재 페이지의 단어 수와 책의 페이지당 평균 단어 수 간의 차이
결과를 책과 페이지 번호순으로 정렬하여 표시하세요.
다음 열을 반환하세요:
bookpagewordsmax_words_in_bookavg_words_per_pagediff_from_avg
직접 해보기
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
직접 연습해 보세요: SQL 플레이그라운드