Aar*_*der 2 sql postgresql types aggregate-functions bigint
我正在对整数列进行 sum() 操作,并且希望将结果类型转换为 bigint - 以避免错误。然而,当我尝试使用 sum(myvalue)::bigint 时,它仍然给我一个超出范围的错误。
我可以对查询做些什么来让它工作吗?或者我必须将列类型更改为 bigint 吗?
当前的手册比2013 年的更加明确:
\n\n\n\n
sum(integer) \xe2\x86\x92bigint
如果您的列myvalue确实具有像您所说的类型integer,那么结果就是bigint无论如何,并且添加的强制转换sum(myvalue)::bigint只是噪音。
无论哪种方式,要得到“超出范围”错误,结果都必须大于bigint可容纳的范围:
\n\n-9223372036854775808 至 +9223372036854775807
\n
人们必须聚合大量大integer值 (>= 2^32 * 2^31)。如果是这样,请将基列转换为bigint,从而强制结果为numeric:
SELECT sum(myvalue::int8) ...\nRun Code Online (Sandbox Code Playgroud)\n更可能的解释是您的列实际上具有不同的数据类型,或者错误源于其他原因。问题中没有足够的细节。
\n| 归档时间: |
|
| 查看次数: |
10266 次 |
| 最近记录: |