#34255: Annotation/group by with an expression on psycopg3
-------------------------------------+-------------------------------------
     Reporter:  Guillaume Andreu     |                    Owner:  nobody
  Sabater                            |
         Type:  Bug                  |                   Status:  new
    Component:  Database layer       |                  Version:  dev
  (models, ORM)                      |
     Severity:  Release blocker      |               Resolution:
     Keywords:  orm postgres         |             Triage Stage:  Accepted
  psycopg3 annotation groupby        |
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------

Comment (by Mariusz Felisiak):

 > This will be hard to solve as group by aliasing cannot be used since
 year is stripped from the query.

 What about grouping by the entire function? as we do when it's not pushed
 into subquery, e.g.
 {{{#!python
 Point.objects.annotate(
     year=ExtractYear("start_at", tzinfo=tz),
 ).values("year").annotate(
     baseload=Avg("value"),
 ).values("year", "baseload")
 }}}
 {{{#!sql
 SELECT
     EXTRACT(YEAR FROM "ticket_34255_point"."start_at" AT TIME ZONE
 'Europe/Paris') AS "year",
     AVG("ticket_34255_point"."value") AS "baseload"
 FROM "ticket_34255_point"
 GROUP BY 1
 }}}

-- 
Ticket URL: <https://code.djangoproject.com/ticket/34255#comment:3>
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/01070185a96361ed-9d441f77-5a19-4b49-b20c-caeae30f986a-000000%40eu-central-1.amazonses.com.

Reply via email to