[Django] #35300: Simple COUNT without OUTER JOIN

15 views
Skip to first unread message

Django

unread,
Mar 14, 2024, 1:55:51 AM3/14/24
to django-...@googlegroups.com
#35300: Simple COUNT without OUTER JOIN
-------------------------------------+-------------------------------------
Reporter: Chrea | Owner: nobody
Chanchhunneng |
Type: New | Status: new
feature |
Component: | Version: 4.2
Uncategorized | Keywords: reduce counting
Severity: Normal | time,
Triage Stage: | Has patch: 0
Unreviewed |
Needs documentation: 0 | Needs tests: 0
Patch needs improvement: 0 | Easy pickings: 0
UI/UX: 0 |
-------------------------------------+-------------------------------------
as in django query, we support `Count() in db.model` and
`queryset.count()`. But the problem are `Count()` creates the `LEFT OUTER
JOIN` and `queryset.count()` does not support `OuterRef("pk")`.

I hope there is a way to just simply count without `LEFT OUTER JOIN` to
reduce the query time.
--
Ticket URL: <https://code.djangoproject.com/ticket/35300>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

Django

unread,
Mar 14, 2024, 3:35:32 AM3/14/24
to django-...@googlegroups.com
#35300: Simple COUNT without OUTER JOIN
-------------------------------------+-------------------------------------
Reporter: Chrea Chanchhunneng | Owner: nobody
Type: New feature | Status: closed
Component: Uncategorized | Version: 4.2
Severity: Normal | Resolution: invalid
Keywords: reduce counting | Triage Stage:
time, | Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Mariusz Felisiak):

* resolution: => invalid
* status: new => closed

Comment:

Thanks for the ticket, however I'm not sure what do you want to "count"
and how do you expect to count related objects without `JOIN`s. You could
probably use `.aggregate(Count(..))` in a subquery but it's hard to tell
without a concrete example. Please first ask on the
[https://code.djangoproject.com/wiki/TicketClosingReasons/UseSupportChannels
support channels (Trac is not one of them) where folks will be eager to
help.
--
Ticket URL: <https://code.djangoproject.com/ticket/35300#comment:1>
Reply all
Reply to author
Forward
0 new messages