sql >> Databáze >  >> RDS >> PostgreSQL

Django s Postgresql, sloupec se musí objevit v klauzuli GROUP BY nebo být použit v agregační funkci

Toto je známá chyba v Django>=1.8 a Django <2.0. Bylo to opraveno v Django 2.0. Měl jsem stejný problém a uvedl jsem to v mailing listu django-users.

Stalo se, že Django provedl nějaké optimalizace, zejména založené na PostgreSQL. V PostgreSQL stačí použít sloupce pk v klauzuli GROUP BY, ale to je pouze pro tabulky. (Pokud to uděláte, dotaz běží rychleji.) Nemůžete mít PK v pohledu v PostgreSQL, což je důvod, proč je to pro nás problém, protože používáme nespravované modely spojené s pohledy v backendu.

Reference:



  1. mysql vytvořit uživatele pouze v případě, že uživatel neexistuje

  2. Operace SQL Server CRUD

  3. Syntaxe SQL CREATE TABLE – Zobrazeno podle DBMS

  4. Jak vrátit tabulku podle typu řádku v PL/pgSQL