【发布时间】:2023-03-18 14:23:01
【问题描述】:
我发现在我的工作中,我经常不得不自己加入同一张表,部分原因是我无法控制数据库设计,部分原因是大部分时间都希望事情非常定制。
Select distinct t.label, z.dupCount
From optevents t
Join
(select label, Count(*) dupCount
from optevents
group By label
Having Count(*) > 1) z
On z.label = t.label
where t.campaignId = 100
order By dupCount Desc
我很好奇如何将其转换为 Django ORM 查找?
模型定义非常简单,根本没有外键。
【问题讨论】:
-
这是未经测试的,所以我暂时将其作为评论:
OptEvents.objects.filter(campaign__pk=100).values("label").annotate(dupCount=models.Count("label")).order_by("dupCount")这是使用a special type ofannotations -
问题在于我正在尝试查找不同标签的数量。 IE。标签可以是 A |乙| C,我需要A的计数,B的计数和C的计数
-
@TimmyO'Mahony 它确实有效。好电话!
-
我会添加它作为答案