I have a table T with columns A & C, from which I would like to retrieve an average count like so:
select avg(AC) as AV
from
(
select A, count(1) as AC
from T
where C = 1
group by A
)
How do I accomplish this in GORM? GRAILS version 2.2.0 I tried following the documentation but there are no good examples. I couldn't even get the subquery to work :(
I was able to get the count portion to work. Still now sure how to get the average since I don't know how to select from a query.
def tc = T.createCriteria()
def tCounts = tc.buildCriteria {
and {
eq 'C', 1
}
projections {
groupProperty 'A'
rowCount('AC')
}
}
Here is done in HQL. Tested in a grails console with one of my domains:
T.executeQuery("""
select avg(count(*))
from T t
where t.c = 1
group by t.a
""")