我有以下查询:
SELECT DISTINCT w.name, count(*) FROM widgets AS w
JOIN w.entity AS e
JOIN e.article AS a
JOIN a.document AS d
WHERE d.id IN (<document ids>)
GROUP BY w.name
问题是count(*)
返回了widget-entity关联的数量。相反,我正在寻找的是每篇文章或文档的唯一小部件名称的数量。
以下是一个例子:
假设我有两个实体:cat
和dog
。
我还有两个不同的小部件,它们具有相同的名称,foo
。每个foo
个窗口小部件与其中一个实体相关联(一个带有cat
,另一个带有dog
)。左侧cat
和dog
与文章animals
相关联。
我希望此查询返回的计数仅为1(因为小部件名称foo
仅在文章{{1}中找到一次}),而不是2。
我已尝试在count子句中放置其他内容,例如animals
,但没有运气。
答案 0 :(得分:1)
由于我在后端使用MSSQL,我可以这样做:count(DISTINCT a.id)