PostgreSQL总结类型转换为bigint

时间:2013-11-25 20:53:29

标签: sql postgresql types aggregate-functions bigint

我正在执行整数列的sum(),我想将结果类型转换为bigint - 以避免错误。但是当我尝试使用sum(myvalue):: bigint时,它仍然会给我一个超出范围的错误。

我可以对查询做些什么来使其工作?或者我是否必须将列类型更改为bigint?

3 个答案:

答案 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"