3
我發現在我的工作中,我經常必須自己加入同一張表,部分原因是我無法控制數據庫設計,部分原因是因爲需要非常自定義的大部分時間。Django查詢時自己加入同一張表
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。過濾器(campaign__pk = 100).values(「label」)。annotate(dupCount = models.Count(「label」))。order_by(「dupCount」)'這是使用[特殊類型的'annotations'] //docs.djangoproject.com/en/dev/topics/db/aggregation/#values) – 2013-03-13 22:23:54
問題在於我試圖找到不同標籤的數量。即標籤可以是A | B | C,我需要計數A,計數B和計數C – 2013-03-13 22:32:52
@ TimmyO'Mahony實際上它確實有效。好決定! – 2013-03-13 22:36:44