我有一个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 (Java端的BigDecimal
只需使用:
select sum(big_col)::bigint as total
from big_table
您应该尽快升级到受支持的版本(例如 9.x)。