3

私の仕事では、同じテーブル自体に参加しなければならないことがよくあります。その理由の 1 つは、DB の設計を制御できないことと、ほとんどの場合、非常にカスタムなものが求められていることです。

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

annotateとを組み合わせてこれを達成できるはずですvalues

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

ダニエル・ローズマンによるこれに関する良いブログ投稿は次のとおりです

于 2013-03-13T22:41:06.460 に答える