我正在执行整数列的sum(),我想将结果类型转换为bigint - 以避免错误。但是当我尝试使用sum(myvalue):: bigint时,它仍然会给我一个超出范围的错误。
我可以对查询做些什么来使其工作?或者我是否必须将列类型更改为bigint?
答案 0 :(得分:3)
结果明显大于bigint
可以容纳的结果:
-9223372036854775808 to +9223372036854775807
Postgres在这种情况下返回numeric
。你不应该做任何事情,它应该没有明确的演员。
如果没有,您可以将基本类型转换为bigint
,从而在任何情况下都强制结果为numeric
。
SELECT sum(myvalue::int8) ...
答案 1 :(得分:1)
我使用以下语句解决了我的问题
SUM(CAST(gross_amount AS Integer))
这是将列的结果作为SUm bigint,
注意:我的列gross_amount是双重类型。
答案 2 :(得分:0)
您需要先将其强制转换为 进行操作:
autocomplete="off"