【发布时间】:2015-09-28 16:36:21
【问题描述】:
我有以下 HQL 查询:
select c.device from Choice c
group by c.device
现在我想计算结果中的组数,而不是每组的设备数。
我试过了:
select count(distinct c.device) from Choice c
group by c.device
但这给出了每组中不同设备的数量。这类似于[2,3,4]。但我需要2+3+4。
如何获取 HQL 的组数?
【问题讨论】:
-
看起来sum 可能会做你想做的事?
-
另外,您是否需要对组进行计数,根据您的样本为
3,或者您是否需要对所有组进行总和,即9?跨度> -
不,绝对不是总和。
-
类似于stackoverflow.com/questions/9184135/…。当天晚些时候,但可能会帮助其他人 - 描述 HQL 方式的评论。一些我们如何基于分组总和得到两个不同的查询:这个
SomeClass.executeQuery("select count(distinct subClass.someThing) "+query+grpStmt,whereParams).sum()和这个:SomeClass.executeQuery("select new map (mainClass.id as id)"+query+grpStmt,whereParams)?.size()它们都产生相同的结果但是发生不同的查找.sum()比后者快得多.size()