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

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

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

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

错误

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

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

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)

计算果然没出错