我一直在尝试使用
对行的行进行求和select sum(columnA)
from tableA
然而我一直收到错误,
Arithmetic overflow error converting expression to data type bigint
ColumnA
已经在表格中设置为bigint,即使我尝试
select sum(cast(columnA as bigint)) from tableA
我仍然得到同样的错误。我知道列范围中值的总和应该等于大约111500000000000000.这对bigint来说太大了吗?
如果是这样,我该如何解决这个错误?
答案 0 :(得分:0)
如果您认为SUM
的总BIGINT
可能会很大,则可以将其分为2个查询,如果您有主键或其他方式来划分数据。这将是一个很好的测试,以确定实际总和是多少。
SELECT SUM(columnA)
FROM tableA
Where PrimaryID < 50 --Or what ever is half your data
SELECT SUM(columnA)
FROM tableA
Where PrimaryID >= 50
获得个人SUM
后,您可以验证总数,如果仍然不起作用,您可以随时查看更多查询。
答案 1 :(得分:0)
尝试以下方法。 decimal(38,0)
是SQL Server可以处理的最大数字数据类型(包含的数字大于bigint
)。
select sum(cast(columnA as decimal(38,0))) from tableA