sql >> Database >  >> RDS >> PostgreSQL

Django met Postgresql, kolom moet voorkomen in de GROUP BY-component of worden gebruikt in een aggregatiefunctie

Dit is een bekende bug in Django>=1.8 en Django <2.0. Het is opgelost in Django 2.0. Ik had hetzelfde probleem en bracht het naar voren in de django-users mailinglijst.

Wat er gebeurde, is dat Django enkele optimalisaties heeft uitgevoerd, vooral op basis van PostgreSQL. In PostgreSQL hoeft u alleen de pk-kolommen in de GROUP BY-component te gebruiken, maar dat is alleen voor tabellen. (De query wordt sneller uitgevoerd als u dat doet.) U kunt geen PK hebben in een weergave in PostgreSQL, daarom is het een probleem voor ons omdat we niet-beheerde modellen gebruiken in combinatie met weergaven in de backend.

Referenties:



  1. Bereken kantooruren tussen twee datums

  2. Kan een INNER JOIN betere prestaties bieden dan BESTAAT?

  3. Ik begrijp Collatie niet? (Mysql, RDBMS, Tekensets)

  4. Hoe kan een query 2 cellen vermenigvuldigen voor elke rij MySQL?