在查询dsl或jpql中分组后的行总和

时间:2016-11-27 08:43:43

标签: hibernate jpa jpql querydsl

我试图在分组后对表的行进行求和,让我用一个例子解释我的问题:

1)我需要按名称,部门计算总费用。我可以用group by,简单易行来做到这一点。

按名称:

select e.Employee_name, sum(expenses) 
from Employee e 
group by Employee_name

by dept:

select e.dept, sum(expenses) 
from Employee e 
group by dept

这是我在与JPA斗争的地方。

2)我需要按名称或部门分组计算总费用。 使用本机SQL我可以在from子句中进行内部查询,如下所示:

select sum(employeeExpense) 
from (
   select e.Employee_name, sum(expenses) as employeeExpense 
   from Employee e 
   group by Employee_name
 ) X

我坚持使用Jpa解决该问题的第2步,有没有办法在jpa或查询dsl中执行此操作?

enter image description here

1 个答案:

答案 0 :(得分:0)

所以我会在这里给你一个查询方法 使用createquery,它将返回给你这样的东西

__int__

每个列表元素是Object []和Object [],第一个元素是员工名称,第二个元素是sum(exprenses)