PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

django mendapatkan bulan dari tanggal untuk agregasi

Apakah Anda mencoba melihat skema Anda? Saya rasa Anda salah memasukkan nama kolom.

Dengan asumsi Anda menggunakan Djnago>=1.8, Anda juga dapat menghindari seluruh masalah dengan menulis Func seperti ini:

class ExtractMonth(Func):
    template = "EXTRACT(MONTH FROM %(expressions)s)"

    def __init__(self, *expressions, **extra):
        extra['output_field'] = SmallIntegerField()
        super().__init__(*expressions, **extra)
       

dan menggunakannya seperti ini:

Subscription.objects.annotate(Month=ExtractMonth('Modified'))\
                .values('Month').annotate(Count('Month'))

Dengan cara ini 'Modified' adalah nama bidang pada model Anda dan Django menyelesaikan nama kolom untuk Anda.

Perbarui

Ada solusi yang lebih umum yang diusulkan dalam tiket 1.9 ini .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menginstal pgroonga di macosx (dengan Postgres.app)

  2. Perintah PostgreSql untuk melihat data tabel

  3. PostgreSQL:kembalikan pesan setelah hitungan =0

  4. Cara menemukan dan menghapus beberapa tabel dari Database PostgreSQL

  5. Fungsi PostgreSQL mengembalikan batal