【问题标题】:Grouping by with a map key使用地图键分组
【发布时间】:2015-05-13 14:28:05
【问题描述】:

我想对按其键对结果进行分组的映射的值求和。我有以下查询。

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。

【问题讨论】:

    标签: hibernate postgresql dictionary group-by hql


    【解决方案1】:

    奇怪,但是用地图属性加入实体解决了这个问题。

    SELECT b.foreignEntity.id, KEY(m), sum(VALUE(m))
      FROM B b JOIN b.map m GROUP BY b.foreignEntity, KEY(m)
    

    【讨论】:

      猜你喜欢
      • 2022-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-13
      • 1970-01-01
      • 2020-01-25
      • 1970-01-01
      相关资源
      最近更新 更多