Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Grup Django menurut tanggal dan nilai SUM

Hmm Anda menggunakan Count , Anda harus menggunakan Sum , dan values() akan menentukan apa yang masuk ke GROUP BY jadi Anda harus menggunakan values('datetime') hanya. Set kueri Anda harus seperti ini:

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'))

meskipun saya tidak begitu yakin tentang urutan filter() , jadi bisa jadi ini:

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

Saya kira Anda ingin mencoba keduanya. Jika Anda ingin melihat kueri mentah dari kumpulan kueri tersebut, gunakan Queryset.query :

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

Jadi, Anda dapat memastikan bahwa Anda mendapatkan kueri yang tepat.

Semoga membantu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jenis kesalahan sintaks tidak valid =MyISAM dalam DDL dihasilkan oleh Hibernate

  2. Menggunakan indeks, menggunakan sementara, menggunakan filesort - bagaimana cara memperbaikinya?

  3. Kotak centang yang tidak dicentang mengembalikan nilai nol

  4. Membuat tabel dengan kesalahan aritmatika overflow

  5. Lewati parameter ke baris perintah skrip MySQL