Django-aggregation function

Pang·2021년 10월 24일
0
post-thumbnail

Aggregation function

aggregation function은 평균, 합, 최대, 최대값과 같은 값을 알려줄 때 쓰는 함수이다.

Avg - 평균

여기서 한 가게의 별점의 평균 값을 구하기 위해 avg를 사용한 것이다.

from django.db.models import Avg

사용하기 위해선 django.db.models에서 Avg를 호출해야한다.

store = Store.odjects.all().annotate(average_point=Avg('rating__rate'))

우선 코드를 보기 전에 annotate라는 매서드부터 알아야한다.

쉽게 말하면 models.py의 class에서

class Store()에 가짜 필드을 추가해주는 것이다.

이제 class Store에는 average_point라는 가짜 필드가 임시적으로 생성 됐다.

후에 Avg('rating__rate') 부분은

Avg 즉 평균값을 낸다는 것이다.

어디서? 바로 뒤에 있는 class Rating에 있는 rate속성의 값을 평균 값으로 내서 store에 새로운 필드을 만들어 준다는 것 이다.

Avg('')에 ''로 감싸여진 부분은 django 명명법상 "관계이름__대상필드명"으로 적어야하고 소문자로 표기해야 한다.

호출할 때에는

Store.objects.all().average_pront

로 일반 필드처럼 호출할 수 있다.

profile
팡 화이토

0개의 댓글