返回组中的项数。COUNT 与 COUNT_BIG 函数类似。两个函数唯一的差别是它们的返回值。COUNT 始终返回 int 数据类型值。COUNT_BIG 始终返回 bigint 数据类型值。
Transact-SQL 语法约定
语法
COUNT ( { [ [ ALL | DISTINCT ] expression ] | * } )
备注
COUNT(*) 返回组中的项数。包括 NULL 值和重复项。
COUNT(ALL expression) 对组中的每一行都计算 expression 并返回非空值的数量。
COUNT(DISTINCT expression) 对组中的每一行都计算 expression 并返回唯一非空值的数量。
对于大于 2^31-1 的返回值,COUNT 生成一个错误。这时应使用 COUNT_BIG。
参数
ALL
对所有的值进行聚合函数运算。ALL 是默认值。
DISTINCT
指定 COUNT 返回唯一非空值的数量。
expression
除 text、image 或 ntext 以外任何类型的表达式。不允许使用聚合函数和子查询。
*
指定应该计算所有行以返回表中行的总数。COUNT(*) 不需要任何参数,而且不能与 DISTINCT 一起使用。COUNT(*) 不需要 expression 参数,因为根据定义,该函数不使用有关任何特定列的信息。COUNT(*) 返回指定表中行数而不删除副本。它对各行分别计数。包括包含空值的行。
重要事项:
使用 CUBE 或 ROLLUP 时,不支持区分聚合,如 AVG(DISTINCT column_name)、COUNT(DISTINCT column_name)、MAX(DISTINCT column_name)、MIN(DISTINCT column_name) 和 SUM(DISTINCT column_name)。如果使用这些聚合,Microsoft SQL Server 2005 Database Engine 将返回一条错误消息并取消查询。
返回类型
int
示例
A. 使用 COUNT 和 DISTINCT
以下示例列出了在 Adventure Works Cycles 工作的雇员可以拥有的不同标题的数量。
复制代码
USE AdventureWorks
GO
SELECT COUNT(DISTINCT Title)
FROM HumanResources.Employee
GO
下面是结果集:
复制代码
———–
67
(1 row(s) affected)
B. 使用 COUNT(*)
以下示例计算 Adventure Works Cycles 的雇员总数。
复制代码
USE AdventureWorks
GO
SELECT COUNT(*)
FROM HumanResources.Employee
GO
下面是结果集:
复制代码
———–
290
(1 row(s) affected)
C. 组合使用 COUNT(*) 和其他聚合函数
以下示例显示可以组合使用 COUNT(*) 和选择列表中的其他聚合函数。
复制代码
USE AdventureWorks
GO
SELECT COUNT(*), AVG(Bonus)
FROM Sales.SalesPerson
WHERE SalesQuota >25000
GO

下面是结果集:
复制代码
———– ———————
143472.1428
(1 row(s) affected)
SQL的COUNT语句
过多繁琐的sql影响代码质量,及维护成本,以下为两种小技巧处理方式,仅供参考。
第一种,用case —when—方法
select id
,sum(case when type in (1,2) then [count] else 0 end) as sum1
,sum(case when type in (3) then [count] else 0 end) as sum2
,sum(case when type in (4,5) then [count] else 0 end) as sum3
from 表名
group by id
第二种,if 判断
SELECT SUM( goods_amount ) AS money,
count( * ) AS num,
count(if(pay_status=1,true,null)) AS success,
count(if(pay_status=2,true,null)) AS fall
FROM `tab_order_info`
WHERE user_id = 11
sql语句中count的用法?
SQL中的count()语句是计算行数的语句,但根据括号内的内容不同,略有区别。
1、创建测试表、插入数据:
create table test
(id int,
name varchar(10),
name1 varchar(10))
insert into test values (1,’a’,’b’)
insert into test values (2,’c’,’d’)
insert into test values (3,’e’,null)
2、做不同的测试(主要是针对字段中含有null的情况)。
(a)测试语句
select count(*) from test–不区分字段,针对全表
结果:
(b)测试语句:
select count(id) from test–针对一列不含空值的字段
结果:
(c)测试语句:
select count(name1) from test
结果:
结论:对count中为*或者列中不含空值的字段,结果就是所有的行数,如果某一列含空值,结果就是去除了空行的部分的行数。
SQL语句中count和count的区别
a列有多少元素?你的意思应该是a列有多少个不同的元素吧?null算吗?如果null不算,那么count(distinct a)就可以。如果null算,那么就要先看看有没有null有的话就+1,具体的做法各个数据库写法上也会有所区别,这个就不写了。
如果要比较三张表,那么就需要交并补,那么就需要用到union等语句关联的写法,各个数据库也并不完全一致,根据数据库选择。
如元素要列出来,那么直接distinct a 这样就直接列出来了。
如果要知道每个元素的出现的次数,那么就需要分组count了,a count(a)group by a
SQL语句中count和count没有区别。表示返回匹配指定条件的行数。
SQL COUNT() 语法:
1、SQL COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入),如:SELECT COUNT(column_name) FROM table_name。
2、SQL COUNT(*) 函数返回表中的记录数,如:SELECT COUNT(*) FROM table_name。
3、SQL COUNT(DISTINCT column_name) 函数返回指定列的不同值的数目,如:SELECT COUNT(DISTINCT column_name) FROM table_name。
扩展资料:
COUNT和 DISTINCT 经常被合起来使用,目的是找出表格中有多少笔不同的数据 (至于这些数据实际上是什么并不重要)。COUNT(DISTINCT column_name) 语法适用于 ORACLE 和 Microsoft SQL Server,但是无法用于 Microsoft Access。
COUNT(column_name) 语法返回的数目是检索表中的这个字段的非空行数,不统计这个字段值为null的记录。而COUNT(*) 语法返回的数目是包括为null的记录。
以上就是关于sql中count是什么含义全部的内容,如果了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!











