2015-05-13 3 views
0

Я хочу суммировать значения карты, группирующей результат по ее ключам. У меня есть следующий запрос.Группировка с помощью ключа карты

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

Странно, но объединение объекта с атрибутом карты решило проблему.

SELECT b.foreignEntity.id, KEY(m), sum(VALUE(m)) 
    FROM B b JOIN b.map m GROUP BY b.foreignEntity, KEY(m) 
Смежные вопросы