MSSQL sum()计算expression转化为数据类型int时发生算术溢出错误解决

简介:

SQL Server sum()函数计算某一列的值的合时

1
select  sum (pdfsize)/1024/1024  as  totalsize, count (*)  as  cnt, sum (pdfsize)/1024/1024/ count (*)  as  avgsize

由于表行数过大(接近5千万行),查询一段时间后报出

expression转化为数据类型int时发生算术溢出错误

错误

应该是超过int数据不够存了

逐将数据类型转换为numeric类型

1
select   sum ( convert ( numeric (20,0),pdfsize)/1024/1024)    as  totalsize , count (*)  as  cnt  ,  sum ( convert ( numeric (20,0),pdfsize)/1024/1024) / count (*)   as  avgsize    from  main0   where  (pdfsize  is  not  NULL )

计算果然没出错




      本文转自天山三害 51CTO博客,原文链接:http://blog.51cto.com/skybug/1349580,如需转载请自行联系原作者


相关文章
|
7月前
|
存储 SQL 关系型数据库
|
6月前
|
存储 C语言
C 语言实例 - 计算 int, float, double 和 char 字节大小
C 语言实例 - 计算 int, float, double 和 char 字节大小。
35 1
|
3月前
牛客网刷题总结1.利用%符号获取特定位数的数字。2.强制类型转换 (将float转换为int )3.计算有关浮点型数据时,要注意你计算过程中所有的数据都是浮点型
牛客网刷题总结1.利用%符号获取特定位数的数字。2.强制类型转换 (将float转换为int )3.计算有关浮点型数据时,要注意你计算过程中所有的数据都是浮点型
24 0
|
5月前
|
存储 C语言
计算 int, float, double 和 char 字节大小
C 语言实例 - 计算 int, float, double 和 char 字节大小。
44 1
|
6月前
|
机器学习/深度学习
计算sum=1+2...+n,要求number和sum的类型都是int,且sum在32位以内~
计算sum=1+2...+n,要求number和sum的类型都是int,且sum在32位以内~
|
7月前
|
存储 Java
湖南大学Java编程题3. 计算int型二进制1的个数
湖南大学Java编程题3. 计算int型二进制1的个数
|
Java
java中的int的取值范围如何计算?
java中的int的取值范围如何计算?
293 0
java中的int的取值范围如何计算?
|
Java
Java数据类型中String、Integer、int相互间的转换
Java数据类型中String、Integer、int相互间的转换
155 0
线上问题排查-int类型的溢出问题
线上问题排查-int类型的溢出问题
java中整型数据(byte、short、int、long)溢出的现象及原理
java中整型数据(byte、short、int、long)溢出的现象及原理

热门文章

最新文章