#23669: ProgrammingError when aggregating over an annotated & grouped ORM query
-------------------------------------+-------------------------------------
     Reporter:  kot-behemoth         |                    Owner:  nobody
         Type:  Bug                  |                   Status:  new
    Component:  Database layer       |                  Version:  1.6
  (models, ORM)                      |               Resolution:
     Severity:  Normal               |             Triage Stage:
     Keywords:  orm, annotate,       |  Unreviewed
  aggregate, values, avg, max        |      Needs documentation:  0
    Has patch:  0                    |  Patch needs improvement:  0
  Needs tests:  0                    |                    UI/UX:  0
Easy pickings:  0                    |
-------------------------------------+-------------------------------------

Comment (by shaib):

 I suspect you simplified the code too much -- since `m.id` is a primary
 key, there can only be one `score` value per `id` value; `max(score)`
 makes little sense.

 More generally, you may note that the documentation example you linked to
 aggregates over sub-records, and you are trying to aggregate over the main
 record -- which, again, makes little sense when used via `annotate` rather
 than `aggregate`.

 I have a strong suspicion that the hack mentioned will break "normal"
 `annotate()` calls (aggregating over sub-records).

--
Ticket URL: <https://code.djangoproject.com/ticket/23669#comment:4>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-updates+unsubscr...@googlegroups.com.
To post to this group, send email to django-updates@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/070.431fa85aea3d2020410b5ca8d37a7bb0%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to