У меня есть таблица Postgres 8.2 со столбцами, определенными как тип данных bigint
.
Когда я делаю sum(column)
, возвращаемый тип — numeric
. Я хочу, чтобы тип суммирования был равен bigint
, так как я точно знаю, что результат не превысит максимальное значение bigint
. Я смог добиться этого, используя такой подзапрос:
select T.big_col_total::bigint from (select sum(big_col) as big_col_total from big_table) T;
Есть ли способ сделать это без использования подзапроса, т. Е. Могу ли я каким-то образом напрямую привести тип sum
? Я попробовал несколько способов, и оба приводят к синтаксической ошибке.
(предыстория: я запускаю этот запрос из Hibernate, поэтому для меня важно сохранить тип возвращаемых данных из запроса, ограниченный BigInteger. bigint + bigint = numeric (BigDecimal на стороне Java)