大数据求和 之后 count_big

昨天碰着一个查询,两个结果集的并,查询花了近8分,还一直在查。

就一个一个查总数据来测结果集,结果出现一个报错:

消息 8115,级别 16,状态 2,第 1 行
Arithmetic overflow error converting expression to data type int.

一看是超出了类型,但是下面的存储都远远低于int的数据量的,百度一下,原来是count所求的数据量超出了int类型的总数。

COUNT_BIG 始终返回 bigint 数据类型值。COUNT 始终返回 int 数据类型值

语法

 
COUNT_BIG ( { [ ALL | DISTINCT ] expression } | * ) 

参数

ALL

对所有的值进行聚合函数运算。ALL 是默认值。

DISTINCT

指定 COUNT_BIG 返回唯一非空值的数量。

expression

是任何类型的表达式。不允许使用聚合函数和子查询。

*

指定应该计算所有行以返回表中行的总数。COUNT_BIG(*) 不需要任何参数,而且不能与 DISTINCT 一起使用。COUNT(*) 不需要 expression 参数,因为根据定义,该函数不使用有关任何特定列的信息。COUNT_BIG(*) 返回指定表中的行数并将重复行计算在内。它对各行分别计数。包括包含空值的行。

返回类型

bigint

备注

COUNT_BIG(*) 返回组中的项数。包括 NULL 值和重复项。

COUNT_BIG(ALL expression) 对组中的每一行都计算 expression 并返回非空值的数量。

COUNT_BIG(DISTINCT expression) 对组中的每一行都计算 expression 并返回唯一非空值的数量。

原文地址:https://www.cnblogs.com/zerocc/p/2969295.html