【发布时间】:2012-11-02 14:21:14
【问题描述】:
我正在尝试编写一个查询,返回员工平均工资在指定范围内的所有部门。
我有这样的事情:
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) 在范围内,我会得到所有部门,否则我会得到空的结果列表。有什么想法吗?
【问题讨论】:
-
datanucleus 中存在错误,但有简单的解决方法。我们可以使用 sum/count 而不是 avg,它可以正常工作。
标签: java group-by datanucleus jdoql