1、SUM函数
SUM聚合函数用于对数字型字段的值累加求和,它可以计算单列或多列的总和。
例如:
select sum(age) from person -- 查询person表里的年龄的总和
2、MAX函数和MIN函数
可以分别获取column列的最大值和最小值
例如:
select max(age) from person -- 查询person表里的年龄的最大值
--求分数最低的
select min(score) from T_table
示例:
查询年龄最大的员工的出生日期
Select min(birthday)最年长员工出生日期,max(datediff(year,birthday,getdate()))最年长员工岁数 from employee
解释:
- 内置函数getdate()显示当前日期
- 内置函数datediff(date1,date2)用于计算日期date1和date2 之间相隔的天数
3、AVG函数
AVG(column)函数用于返回数字型字段column平均值
注意:列值为Null的字段不参与运算
例如:
select avg(num) as 平均值 from [tb]
4、COUNT函数
用于统计记录行数,使用COUNT函数时,必须指定一个列的名称或使用 " * " ,使用" * " 可以获取整张表的记录行数
注意:
当使用COUNT(column1)函数统计column1列值的数目时,column1列值为Null的不计入计算
示例:
SQL |
select COUNT(编号) 日销售额大于的数量 from tb_sell where 日销售额>200
显示结果:
---下面是几个COUNT 函数的实用例子
--查询几个雇员表(tb_Employee)中数据库中有多少条记录
select COUNT(*) from tb_Employee
--查询雇员表(tb_Employee)中有多少位员工住在长春市
select COUNT(*) from tb_Employee where 家庭住址 like '%长春市%'
--查询雇员表(tb_Employee)中年龄介于20~30岁的员工有多少位
select COUNT(*) from tb_Employee where DATEDIFF(YY,出生年月,GETDATE) BETWEEN 20 AND 30
最高单价与平均单价之差:max(unitprice)-avg(unitprice)
平均单价与最低单价之差:avg(unitprice)-min(unitprice)
计算单价平均值:select sum(unitprice)/count(unitprice) 平均单价 from goods
5、VAR函数
用于计算指定表达式中所有值的方差
示例:select var(age) from person -- 查询person表里的年龄的方差
6、GROUP BY子句
使用该子句可以将数据划分到不同的组中,实现对记录的分组查询
GROUP BY 字段列表 [HAVING 条件表达式]
- “字段列表”表示进行分组所依据的一个或多个字段的名称
- “HAVING 条件表达式”是一个逻辑表达式,用于指定分组后的筛选条件
注意:
使用分组查询时,出现在select后面的字段必须是group by后面的字段,或者聚合函数
示例:
--查询每个班号存在所少人
select class as 班号, 班级人数 =count(*) from T_user group by class
--按照性别统计人数
select 性别=sex, 人数=count(*) from T_user group by sex
7、HAVING子句
对分组后的结果进行筛选,未知放在GROUP BY 子句之后,它常包含聚合函数
示例:查询1组和2组分别的总值,但是只需要查询组最大值小于40和最小值大于10的组
结果是只有1组的最大值小于40和最小值大于10,而2组在过滤中排除在外了
8、Having 与where 的区别
where用来匹配条件,是分组前对每一条数据进行筛选,后面是不可以有聚合函数的,但是可以有任何列进行条件判断筛选。having 是对分组后的每一组数据进行筛选,后面可以有聚合函数的,但是不一定有数据表中的任何列。