sql中如何取count(*)的值(sql中的count(*)和count(1))
2023-04-26 · 百度认证:重庆猪八戒网络有限公司官方账号
返回组中的项数。COUNT与COUNT_BIG函数类似。两个函数唯一的差别是它们的返回值。COUNT始终返回int数据类型值。COUNT_BIG始终返回bigint数据类型值。
Transact-SQL语法约定
语法
COUNT({[[ALL|DISTINCT]expression]|*})
备注
COUNT(*)返回组中的项数。包括NULL值和重复项。
COUNT(ALLexpression)对组中的每一行都计算expression并返回非空值的数量。
COUNT(DISTINCTexpression)对组中的每一行都计算expression并返回唯一非空值的数量。
对于大于2^31-1的返回值,COUNT生成一个错误。这时应使用COUNT_BIG。
参数
ALL
对所有的值进行聚合函数运算。ALL是默认值。
DISTINCT
指定COUNT返回唯一非空值的数量。
expression
除text、image或ntext以外任何类型的表达式。不允许使用聚合函数和子查询。
*
指定应该计算所有行以返回表中行的总数。COUNT(*)不需要任何参数,而且不能与DISTINCT一起使用。COUNT(*)不需要expression参数,因为根据定义,该函数不使用有关任何特定列的信息。COUNT(*)返回指定表中行数而不删除副本。它对各行分别计数。包括包含空值的行。
重要事项:
使用CUBE或ROLLUP时,不支持区分聚合,如AVG(DISTINCTcolumn_name)、COUNT(DISTINCTcolumn_name)、MAX(DISTINCTcolumn_name)、MIN(DISTINCTcolumn_name)和SUM(DISTINCTcolumn_name)。如果使用这些聚合,MicrosoftSQLServer2005DatabaseEngine将返回一条错误消息并取消查询。
返回类型
int
示例
A.使用COUNT和DISTINCT
以下示例列出了在AdventureWorksCycles工作的雇员可以拥有的不同标题的数量。
复制代码
USE;
GO
SELECTCOUNT(DISTINCTTitle)
FROM.Employee;
GO
下面是结果集:
复制代码
-----------
67
(1row(s)affected)
B.使用COUNT(*)
以下示例计算AdventureWorksCycles的雇员总数。
复制代码
USE;
GO
SELECTCOUNT(*)
FROM.Employee;
GO
下面是结果集:
复制代码
-----------
290
(1row(s)affected)
C.组合使用COUNT(*)和其他聚合函数
以下示例显示可以组合使用COUNT(*)和选择列表中的其他聚合函数。
复制代码
USE;
GO
SELECTCOUNT(*),AVG(Bonus)
FROMSales.SalesPerson
WHERESalesQuota<25000;
GO
下面是结果集:
复制代码
--------------------------------
143472.1428
(1row(s)affected)