2014-04-16 3 views
2

장고 ORM을 사용하여 집계 결과를 원합니다. 샘플 테이블 구조는 다음과 같습니다어떻게 장고에서 집계를 사용할 수 있습니까

sample_table 

| **id | user_id | viewed | likes |  abc** | 

| 1 | 123  | 1 | 1 | 0.1258965 | 

| 2 | 222  | 0 | 1 | 0.0004585 | 

| 3 | 123  | 0 | 0 | 0.0025802 | 

| 4 | 123  | 1 | 1 | 0.2500245 | 

나는 user_id에 따라 결과가 필요합니다 예를 들어

[user_id, total viewd, total likes, total abc] 

답변

3

당신은 사용자별로 그룹화 값을 원하기 때문에, 당신은 포함 할 User 모델과 annotate 각 행을 필터링해야합니다 집계

sample_table 모델 Sample 당신은이 작업을 수행 할 수 User에 외래 키가 있다고 가정 :

from django.db.models import Sum 

User.objects.annotate(total_viewed=Sum('sample__viewed'), 
         total_likes=Sum('sample__likes'), 
         total_abc=Sum('sample__abc')) 

을 그리고 각 사용자 행은 필드 total_viewed, total_likestotal_abc이있을 것이다.

+2

감사합니다. Bogdan. 이것은 사소한 차이와 함께 나를 위해 일했습니다. 나 여기 그것을 공유하자.annotate (total_viewed = Sum ('sample__viewed'), total_likes = 합계 ('sample__likes'), total_abc = 합계 ('sample__abc')) – Fakhir

관련 문제