一尘不染

GORM中子查询的平均值

hibernate

我有一个包含列A和C的表T,我想从中检索一个平均计数,如下所示:

select avg(AC) as AV
from
( 
 select A, count(1) as AC
 from T
 where C = 1
 group by A
)

如何在GORM中完成此任务?GRAILS 2.2.0版我尝试按照文档进行操作,但是没有好的示例。我什至无法使子查询工作:(

更新资料

我能够使计数部分起作用。现在仍要确定如何获得平均值,因为我不知道如何从查询中进行选择。

def tc = T.createCriteria()

def tCounts = tc.buildCriteria {
    and {
        eq 'C', 1
    }
    projections {
       groupProperty 'A'
       rowCount('AC')
    }
}

阅读 1043

收藏
2020-06-20

共1个答案

一尘不染

这是在HQL中完成的。使用我的域之一在grails控制台中进行了测试:

T.executeQuery("""
select avg(count(*))
from T t
where t.c = 1
group by t.a
""")
2020-06-20