[英]How to add a date filter to an Aggregation query in Django
我目前正在執行匯總查詢,將所有跟蹤ID分組並產生其計數。 我希望能夠按日期過濾此查詢。
我的工作查詢:
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]
任何幫助將不勝感激。
我認為由於缺少括號(在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)) ...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.