3

我发现在我的工作中,我经常不得不自己加入同一张表,部分原因是我无法控制数据库设计,部分原因是大部分时间都需要非常定制的东西。

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 查找?

模型定义非常简单,根本没有外键。

4

1 回答 1

3

您应该能够通过混合annotatevalues

OptEvents \
    .objects \
    .filter(campaign__pk=100) \
    .values("label") \
    .annotate(dupCount=mod‌​els.Count("label")) \
    .order_by("dupCount")

这是 Daniel Roseman 的一篇很好的博客文章

于 2013-03-13T22:41:06.460 回答