{{{Model.objects.annotate(rank=Case(When(condition=~Q(pk=None),
then=Window(Rank(), order_by=F('pk'))))).count()}}}
throws an error:
{{{django.db.utils.ProgrammingError: window functions are not allowed in
GROUP BY}}}
The query works after adding `.values('pk')` to it or when conditional
expressions are not used.
There is a similar inconsistency when we call e.g. `.filter(rank__gt=0)`
instead of `.count()`. It doesn't work anyway (#28333), but there are two
different errors depending on whether conditionals are used:
`django.db.utils.ProgrammingError: window functions are not allowed in
WHERE` or `django.db.utils.NotSupportedError: Window is disallowed in the
filter clause.`.
--
Ticket URL: <https://code.djangoproject.com/ticket/30683>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
* version: 2.2 => master
Comment:
`QuerySet.filter()` part of this ticket was fixed in #30668.
--
Ticket URL: <https://code.djangoproject.com/ticket/30683#comment:1>
* status: new => closed
* resolution: => duplicate
Comment:
`GROUP BY` issue was fixed in 3f32154f40a855afa063095e3d091ce6be21f2c5.
--
Ticket URL: <https://code.djangoproject.com/ticket/30683#comment:2>