需要有关Hibernate/SQL查询计数逻辑的帮助吗
我有以下疑问:需要有关Hibernate/SQL查询计数逻辑的帮助吗,sql,hibernate,count,Sql,Hibernate,Count,我有以下疑问: 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 从窗口小部件中选择不同的w.name,count(*)作为w 加入w.实体为e 加入e.article作为 将a.document作为d 其中d.id在(
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
从窗口小部件中选择不同的w.name,count(*)作为w
加入w.实体为e
加入e.article作为
将a.document作为d
其中d.id在()
按w.name分组
问题是count(*)
返回小部件实体关联的数量。相反,我要寻找的是每个文章或文档中唯一的小部件名称的数量
下面是一个例子:
假设我有两个实体:cat
和dog
我还有两个不同的小部件,它们共享相同的名称,
foo
每个
foo
小部件都与其中一个实体相关联(一个与cat
,另一个与dog
).猫和狗都与文章
动物
相关我希望此查询返回的计数仅为1(因为小部件名称
foo
在文章动物
中只找到一次),而不是2
我尝试过在count子句中放置其他内容,比如count(d.id)
,但运气不佳。啊哈,我找到了答案
因为我在后端使用MSSQL,所以我可以这样做:count(DISTINCT a.id)