postgresql查询的HQL等价物
我试图找出我的查询的HQL等价物,它有两个子查询,我试图做的是得到过去6个月的最大数量,然后按月分组,然后得到过去6个月结果的平均值。因为行有version列,所以我还需要获取该特定行的最大版本 这是我的问题,顺便说一下,我正在使用postgres。任何帮助都将不胜感激,因为我真的很难过。提前谢谢postgresql查询的HQL等价物,postgresql,hql,Postgresql,Hql,我试图找出我的查询的HQL等价物,它有两个子查询,我试图做的是得到过去6个月的最大数量,然后按月分组,然后得到过去6个月结果的平均值。因为行有version列,所以我还需要获取该特定行的最大版本 这是我的问题,顺便说一下,我正在使用postgres。任何帮助都将不胜感激,因为我真的很难过。提前谢谢 select avg(amount1) as maxField1 from ( select max(amount1) as amount1 from table1 a w
select avg(amount1) as maxField1 from
(
select max(amount1) as amount1 from table1 a
where a.id = :id
and a.date between :startDate
and :endDate
and a.version =
(
select max(b.version) from table1 b
where a.id = b.id
and a.date = b.date
)
group by to_char(a.date, 'YYYYMM')
);
HQL和JPA也只允许在SELECT或WHERE子句中进行子查询。不允许FROM子句中的子查询,请参阅:。您需要重写这个查询,将子查询移动到WHERE clasue,但在这种情况下可能非常困难,甚至不可能。为什么不直接使用本机查询,这是最简单的选择?嗨,krokodilko,我按照你的建议使用了本机查询并使用了@sqlresultsmapping(name=“…Result”,classes={@ConstructorResult(..),谢谢你的帮助!