SQLServer之COUNT函数
来源:互联网 发布:linux 字符编码转换 编辑:程序博客网 时间:2024/06/06 05:08
定义:
返回一个组(Group)中满足参数表达式的行数。
格式:
COUNT( * ) 或者 COUNT( [ ALL | DISTINCT ] expression)
COUNT(*) 表示获取该组中所有行的总行数,包含值为NULL的行。
COUNT(expression) 表示获取该组中满足表达式(expression)值不为NULL的行的行数。表达式(expression)可以用ALL 或者DISTINCT修饰,其中ALL是默认修饰,不写等同于ALL修饰,DISTINCT修饰表示不包含重复值的行。
返回值: INT
DEMO
准备基本数据:
DECLARE @t TABLE
(
[SID] BIGINT,
[Name] VARCHAR(50)
);
INSERT INTO @t
VALUES
(1, 'yao'),
(2, NULL),
(3, 'zhao'),
(4, 'zhao')
1:使用COUNT(*)
SELECT COUNT(*)
FROM @t;
返回:4
2:使用COUNT(express)
A:
SELECT COUNT([Name])
FROM @t
返回: 3 (第二条记录Name为NULL,不满足表达式不为NULL的条件,所以不被计数)。
B: ALL 修饰符
SELECT COUNT(ALL [Name])
FROM @t
返回:同A情况,因为ALL修饰符石默认的。C: DISTINCT修饰符
SELECT COUNT(DISTINCT [Name])
FROM @t
返回:2 (第三条记录和第四条记录Name的值是一样的,所以只计数一个)
D:使用其他表达式
我们在使用COUNT(expression)是常常将表的列(如上例中的Name列)作为COUNT的参数表达式,其实express可以任意其他的非void类型的表达式,例如常量,变量
D-1:常量
SELECT COUNT(1)
FROM @t
返回: 4 (结果同COUNT(*)但是表达的意思却不一样, 常量1不为NULL,所以所有的行都被计数,结果也就是所有的行数。
想一想:
SELECT COUNT(DISTINCT 1)
FROM @t
的返回值是多少??? 当然是1了,因为所有的值都是1,所有只有一行被计数。
D-2:变量
DECLARE @v VARCHAR(50) = 'test';
SELECT COUNT(@v)
FROM @t
返回:4 (同上例)
想一想:
DECLARE @v VARCHAR(50) = NULL;
SELECT COUNT(@v)
FROM @t
注意:不可以直接将NULL作为COUNT的参数,COUNT(NULL)是无效的。
E:分组(Group By)
COUNT函数的计数是在一个组里的
SELECT COUNT(1)
FROM @t
GROUP BY [Name]
返回:
1
1
2
为什么呢??
根据Name列分组,会分3个组(所有结果会是3行),每组的行数分析同A-D的情况。
其他:
SQLServer中还有个和COUNT函数相似的函数:COUNT_BIG,他们俩就返回值不同,COUNT返回INT,COUNT_BIG返回BIGINT。
- SQLServer之COUNT函数
- SQLServer 集合函数 COUNT 优化分析
- SqlServer之Convert 函数
- 特殊函数之八SQL COUNT() 函数
- SQLServer的COUNT()指令
- SQLServer的COUNT()指令
- count()函数
- count 函数
- Count 函数
- count()函数。
- count (函数)
- count()函数
- php count()函数与sizeof()函数之问?
- SqlServer之Convert 函数应用格式化日期
- SqlServer之Convert 函数应用(转载)
- SqlServer经典函数之数字去零
- SQLServer数据库基础之-常用函数
- mysql之avg(),count(),min()/max(),sum()函数
- Qt Creator在Linux下的一些配置
- C#中字符串的内存分配与驻留池
- Windows编程特点
- 从1.5k到18k, 一个程序员的5年成长之路读后感
- 黑马程序员-day25-正则表达式
- SQLServer之COUNT函数
- 将UltraEdit添加到右键菜单
- Web service是什么?
- 工作五年之殇
- 黑马程序员---java关于异常
- FREERTOS的启动第一个任务代码分析
- 理解RESTful架构
- Java Web开发基础(1)-Servlet
- Memcache工作原理