앞서 살펴본 Group by 하는 결과에 많이 사용되는 집계함수에 대해서도 잠깐 살펴보자.
annotate() 구문 안에서 자주 사용되는 aggregation funcion 은 아래 처럼 몇가지를 사용할 수 있다.
장고 ORM에서 사용할 수 있는 주요 집계 함수는 다음과 같습니다.
- Avg: 평균을 계산합니다.
- Count: 개수를 계산합니다.
- Max: 최대값을 계산합니다.
- Min: 최소값을 계산합니다.
- Sum: 합계를 계산합니다.
예제로 알아보면 가장 쉽다. 앞서 살펴본 동일한 Test 모델과 값이 있다고 가정한다.
2023.05.01 - [IT/파이썬] - Django - SQL group by 를 ORM 에서 구현하기
name | age | count |
---|---|---|
A | 10 | 1 |
A | 20 | 2 |
B | 10 | 3 |
B | 20 | 4 |
다음과 같은 쿼리를 실행하면 다음과 같은 결과가 반환됩니다.
# Django ORM
queryset = Test.objects.values('name').annotate(
count=Count('*'),
avg_age=Avg('age'),
max_age=Max('age'),
min_age=Min('age'),
sum_age=Sum('age')
)
# 결과
<QuerySet [
{'name': 'A', 'count': 2, 'avg_age': 15.0, 'max_age': 20, 'min_age': 10, 'sum_age': 30},
{'name': 'B', 'count': 2, 'avg_age': 15.0, 'max_age': 20, 'min_age': 10, 'sum_age': 30}
]>
간다하게 이해가 쏙~
Pexels에서 Anete Lusina님의 사진: https://www.pexels.com/ko-kr/photo/6353843/
'IT > 파이썬' 카테고리의 다른 글
Django ORM - Group by 사용해서 Count, Sum, Avg 구하기 (0) | 2023.05.03 |
---|---|
Django - SQL group by 를 ORM 에서 구현하기 (0) | 2023.05.01 |
Django - Rest-framework API 서버 구현 with Django Ninja (0) | 2023.04.28 |
Django - response 객체에 쿼리스트링 추가 (0) | 2023.04.26 |
장고 로그 - Nginx 웹서버, Gunicorn, Django (0) | 2023.04.26 |