我发现在我的工作中,我经常要自己加入同一张桌子,部分原因是因为我无法控制数据库设计,部分原因是因为大多数时候都需要很好的习惯。
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查找?
模型定义非常简单,根本没有外键。
答案 0 :(得分:3)
OptEvents \
.objects \
.filter(campaign__pk=100) \
.values("label") \
.annotate(dupCount=models.Count("label")) \
.order_by("dupCount")