COUNT() 函数返回匹配指定条件的行数。
SQL COUNT(column_name) 语法
COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入):
SELECT COUNT(column_name) FROM table_name;
SQL COUNT() 语法
COUNT() 函数返回表中的记录数:
SELECT COUNT() FROM table_name;
SQL COUNT(DISTINCT column_name) 语法
COUNT(DISTINCT column_name) 函数返回指定列的不同值的数目:
SELECT COUNT(DISTINCT column_name) FROM table_name;
注释:COUNT(DISTINCT) 适用于 ORACLE 和 Microsoft SQL Server,但是无法用于 Microsoft Access。
SQL COUNT(column_name) 实例
下面的 SQL 语句计算 "access_log" 表中 "site_id"=3 的总访问量:
实例
SELECT COUNT(count) AS nums FROM access_log
WHERE site_id=3;
SQL COUNT() 实例
下面的 SQL 语句计算 "access_log" 表中总记录数:
实例
SELECT COUNT() AS nums FROM access_log;
执行以上 SQL 输出结果如下:
SQL COUNT(DISTINCT column_name) 实例
下面的 SQL 语句计算 "access_log" 表中不同 site_id 的记录数:
实例
SELECT COUNT(DISTINCT site_id) AS nums FROM access_log;
执行以上 SQL 输出结果如下:
count 是用于统计查询结果的个数,属于聚合函数。
可以通过以下方面进行了解:
利用临时表进行测试
with tb as(
select 1 n from dual union all
select 1 n from dual union all
select null n from dual union all
select 2 n from dual union all
select 3 n from dual
)
1, 获取查询结果总行数
select count() from tb; -- 5由tb数据可见,tb中共有5条数据。
2,查询非null字段的行数
select count(n) from tb; -- 4该语句查询字段n不为null的总数量,由tb可见,n有一行为null,所以结果为4
需要注意,若n为非null字段,查询总数时,使用count() 比 count(n)速度要快。
原因是count(字段)在统计时,若字段为null,计数不加。若字段不是null,计数+1
3, 统计非空字段的非重复的内容数量
select count(distinct n) from tb; -- 3由于count(n)为获取非null字段数量。distinct为去掉重复值。所以,此结果为先去掉n的重复值再统计。
4,计算字段的非重复数量
select count(distinct nvl(n, 4) from tb; -- 5先提供null值为一个n中不存在的值,然后去掉重复值进行统计。
效果等同于
select count(distinct n)+1 from tb;select fdate,sum(case when res='合格' then 1 else 0 end ) as '合格',sum(case when res='不合格' then 1 else 0 end ) as '不合格' from test group by fdate order by fdate
sql语言count函数如何将0的也统计参考以下方法
1、假如一个table表没有主键(Primary key), 那么count(1)比count()快
2、如果指定的table表有主键的话,那主键作为count的条件时候count(主键)最快
3、如果你的表只有一个字段的话那count()就是最快的
4、 count() 跟 count(1) 的结果一样,都包括对NULL的统计
5、count(column) 是不包括NULL的统计
加班加的累了 给你解决一下假设 你的数据库 有一个sex 字段表示‘男’或者‘女’, 表为 tabselect (case sex when '男' then select count(1) from tab end) 男生总数,(case sex when '女' then select count(1) from tab end) 女生总数from tab
返回组中的项数。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 HumanResourcesEmployee;
GO
下面是结果集:
复制代码
-----------
67
(1 row(s) affected)
B 使用 COUNT()
以下示例计算 Adventure Works Cycles 的雇员总数。
复制代码
USE AdventureWorks;
GO
SELECT COUNT()
FROM HumanResourcesEmployee;
GO
下面是结果集:
复制代码
-----------
290
(1 row(s) affected)
C 组合使用 COUNT() 和其他聚合函数
以下示例显示可以组合使用 COUNT() 和选择列表中的其他聚合函数。
复制代码
USE AdventureWorks;
GO
SELECT COUNT(), AVG(Bonus)
FROM SalesSalesPerson
WHERE SalesQuota > 25000;
GO
下面是结果集:
复制代码
----------- ---------------------
14 34721428
(1 row(s) affected)
以上就是关于sql中count函数的使用全部的内容,包括:sql中count函数的使用、数据库聚合函数count和count的区别、mysql数据库计数count等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)