【问题标题】:Datanucleus jdoql group by having avg()Datanucleus jdoql 组通过具有 avg()
【发布时间】: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


【解决方案1】:

其实从 3.2.0-m4 版本开始就修复了 看这里:http://www.datanucleus.org/servlet/jira/browse/NUCRDBMS-623

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多