咨询T-SQL中COUNT()聚合函数的返回类型(存储过程文档编写)
T-SQL中COUNT()函数的返回类型
在T-SQL里,COUNT()函数的默认返回类型是**int**。这里有个关键细节需要留意:如果你的查询统计的行数超过了int类型的最大值(也就是2^31 - 1,即2147483647),直接使用COUNT()会触发溢出错误。
要是你需要处理行数远超这个上限的场景,就得用COUNT_BIG()函数——它的返回类型是bigint,支持的最大值能到2^63 - 1,足以覆盖绝大多数超大数据集的统计需求。
拿你提供的示例代码来说:
DECLARE @mytable TABLE (Id BIGINT, [Description] nvarchar(max), GroupId INT) INSERT INTO @MyTable VALUES (1, 'Value 1.1', 1) INSERT INTO @MyTable VALUES (2, 'Value 1.2', 1) INSERT INTO @MyTable VALUES (3, 'Value 1.3', 1) INSERT INTO @MyTable VALUES (4, 'Value 2.1', 2) INSERT INTO @MyTable VALUES (5, 'Value 2.2', 2) INSERT INTO @MyTable VALUES (6, 'Value 2.3', 2) SELECT GroupId, Count(Id) as 'Count' FROM @mytable GROUP BY GroupId
这里的Count(Id)返回的就是int类型的结果,毕竟你的示例数据集很小,完全在int的取值范围内。但如果之后你的表数据量暴涨,比如某个分组的行数超过21亿,记得把COUNT()换成COUNT_BIG()来避免溢出问题哦。
内容的提问来源于stack exchange,提问作者Mark Cooper
相关产品推荐
相关产品推荐

