我正在尝试编写一个查询,返回员工平均工资在指定范围内的所有部门。
我有这样的事情:
Query query = pm.newQuery(Employee.class);
query.setResult("department, avg(salary)");
query.setGrouping("department HAVING avg(salary) >= :x && avg(salary) <= :y");
query.setOrdering("2 desc");
问题是,在 HAVING 中再次计算了 avg(salary),所以如果 avg(salary) 在范围内,我会得到所有部门,否则我会得到空的结果列表。有任何想法吗?