2012-03-08 50 views
0

我正在執行聚合查詢,將所有跟蹤ID分組並生成其計數。我希望能夠按日期過濾這個查詢。如何將日期過濾器添加到Django中的聚合查詢中

我的工作查詢:

users = Tracking.objects.values('tracking_id').annotate(dcount=Count('tracking_id')).order_by('-dcount')[:100] 

我已經試過以下過濾器組合,但所有導致語法錯誤。

start_date = datetime.date(2012, 2, 1) 
end_date = datetime.date(2012, 3, 2) 
users = Tracking.objects.filter(date__range=(start_date, end_date).values('tracking_id').annotate(dcount=Count('tracking_id')).order_by('-dcount')[:100] 

start_date = datetime.date(2012, 2, 1) 
end_date = datetime.date(2012, 3, 2) 
users = Tracking.objects.values('tracking_id').filter(date__range=(start_date, end_date).annotate(dcount=Count('tracking_id')).order_by('-dcount')[:100] 

start_date = datetime.date(2012, 2, 1) 
end_date = datetime.date(2012, 3, 2) 
users = Tracking.objects.values('tracking_id').annotate(dcount=Count('tracking_id')).filter(date__range=(start_date, end_date).order_by('-dcount')[:100] 

任何幫助將不勝感激。

回答

1

我認爲它們會導致語法錯誤,因爲丟失的圓括號(END_DATE之後):

users = Tracking.objects.values('tracking_id').filter(date__range=(start_date, end_date) ... 

應該

users = Tracking.objects.values('tracking_id').filter(date__range=(start_date, end_date)) ... 
+1

也許你只需要一杯咖啡:)和你歡迎! – kgr 2012-03-08 19:55:45

相關問題