我想对按键分组结果的地图值进行求和。我有以下查询。
SELECT b.foreignEntity.id, KEY(b.map), sum(VALUE(b.map))
FROM B b GROUP BY b.foreignEntity, KEY(b.map)
不幸的是,它的执行最终会导致以下运行时异常。
Column ?map1_.map_key? must appear in the group by clause or be used in an aggregate function
我尝试通过添加AS
将查询更改为以下内容,但看起来HQL
无法理解,我想要的是什么。
SELECT b.foreignEntity.id, KEY(b.map) AS group1, sum(VALUE(b.map))
FROM B b GROUP BY b.foreignEntity, group1
我遇到的例外是
Column ?scoretype? does not exist.
如何使用HQL
实现我想要的效果?底层数据库是PostgreSQL。
答案 0 :(得分:0)
奇怪,但是使用map属性加入实体解决了这个问题。
SELECT b.foreignEntity.id, KEY(m), sum(VALUE(m))
FROM B b JOIN b.map m GROUP BY b.foreignEntity, KEY(m)