我正在寻找在Grails (或者仅仅是Hibernate)标准表单中表示以下SQL的方法。
select
sum(if( r.type = 'a', r.amount, 0)) as sum_a,
sum(if( r.type = 'b', r.amount, 0)) as sum_b
from records r;在这里,我想得到由特定列定义的不同行子集的两个和。我们的目标是在单个请求中获得它们。
好吧,看看Projections类,我看到它只提供了一个属性的基本总和,所以预期的答案是否定的,但是对于这个问题,什么是最好的解决方案呢?
发布于 2016-06-28 17:12:59
你应该看看sqlProjection,它允许你写一些原生的投影。
也许它看起来像这样:
Projections.sqlProjection("sum(if( {alias}.type = 'a', {alias}.amount, 0)) as sum_a", new String[] { "sum_a" }, new Type[] { StandardBasicTypes.INTEGER})https://stackoverflow.com/questions/37949785
复制相似问题