Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要有关Hibernate/SQL查询计数逻辑的帮助吗_Sql_Hibernate_Count - Fatal编程技术网

需要有关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)