Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Nhóm Django theo ngày tháng và giá trị SUM

Rất tiếc, bạn đang sử dụng Count , bạn nên sử dụng Sumvalues() sẽ xác định những gì đi vào GROUP BY vì vậy bạn nên sử dụng các giá trị values('datetime') chỉ còn. Bộ truy vấn của bạn phải giống như sau:

from django.db.models import Sum

values = self.model.objects.filter(
    datetime__range=(self.dates[0], self.dates[1])
).values('datetime').annotate(data_sum=Sum('data'))

mặc dù tôi không chắc lắm về thứ tự của filter() , vì vậy nó có thể là:

values = self.model.objects.values('datetime').annotate(data_sum=Sum('data')).filter(
    datetime__range=(self.dates[0], self.dates[1])
)

Tôi đoán bạn sẽ muốn thử cả hai sau đó. Nếu bạn muốn xem truy vấn thô của bộ truy vấn đó, hãy sử dụng Queryset.query :

print self.model.objects.filter(
    datetime__range=(self.dates[0], self.dates[1])
).values('datetime').annotate(data_sum=Sum('data')).query.__str__()

Vì vậy, bạn có thể đảm bảo rằng bạn nhận được truy vấn phù hợp.

Hy vọng nó sẽ hữu ích.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:Tìm ngày bị thiếu giữa một phạm vi ngày

  2. Mysql - GIỚI HẠN theo Phần trăm?

  3. Đặt đúng innodb_log_file_size trong mysql

  4. Cách kiểm tra xem cơ sở dữ liệu mysql có tồn tại hay không

  5. Chuyển đổi một ngày trong MySQL từ trường chuỗi