從下表中我需要輸出,
[(蘋果,21.0),(橙色,12.0),(葡萄,15.0)]
基本上是按成本總和分組的水果
日期 (dd/mm//yyyy)
Fruits Table
date item price
01/01/2021 Apple 5.0
01/01/2021 Orange 2.0
01/01/2021 Grapes 3.0
01/02/2021 Apple 7.0
01/02/2021 Orange 4.0
01/02/2021 Grapes 5.0
01/03/2021 Apple 9.0
01/03/2021 Orange 6.0
01/03/2021 Grapes 7.0
...........
....
模型.py
class Fruits(models.Model):
item = models.CharField(max_length=32)
date = models.DateField()
price = models.FloatField()
我試過下面的代碼它沒有按預期作業
fruit_prices = Fruits.objects.filter(date__gte=quarter_start_date,date__lte=quarter_end_date)
.aggregate(Sum('price')).annotate('item').values('item','price').distinct()
uj5u.com熱心網友回復:
您可以通過以下方式使用 GROUP BY:
from django.db.models import Sum
Fruits.objects.filter(
date__range=(quarter_start_date, quarter_end_date)
).values('item').annotate(
total=Sum('price')
).order_by('item')
這將生成一個如下所示的查詢集:
<QuerySet [
{'item': 'Apple', 'total': 21.0},
{'item': 'Grapes', 'total': 15.0},
{'item': 'Orange', 'total': 12.0}
]>
字典的集合,其中鍵'item'和total映射到專案以及滿足給定日期時間范圍的所有prices的總和item。
然而,我建議制作一個FruitItem模型并使用ForeignKey, 將您的資料庫建模轉換為第三范式[wiki]。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/402998.html
標籤:
上一篇:如何在包中匯入同級檔案?
下一篇:Python3.x:我超出范圍
