概述
一.聚合函数
聚合函数是 SQL 基本函数,它对一组值执行计算,并返回单个值。除了 count() 函数以外,聚合函数都会忽略空值。聚合函数经常与 select 语句的 group by 子句一起使用
常用聚合函数:
函数名称 | 函数功能 |
---|---|
sum() | 返回选取的某列值的总和 |
max() | 返回选取的某列值的最大值导管 |
min() | 返回选取的某列值的最小值 |
avg() | 返回选取的某列值的平均值 |
count() | 返回选取的某列值或记录的行数 |
计算平均片长还可以采用 sum(fileLength)/count(fileLength) 方式获得
count(*) 用于统计当前表所选取的行数,count(col) 用于统计当前表所选取的 col 列值不为 null 的行数。
sum(col) 用于汇总当前表所选取的 col 列的值。简而言之,即 count 用于统计数据行数,sum 用于汇总数据。
二.group by 分组统计
语法:
group by 字段列表 [having 条件表达式 ]
示例:按类型显示电影的数量、平均片长,最高票价,按票价、片长升序显示
select typeID 类型 ID,count(*) 数量 ,avg(filmLength) 平均片长(分钟),max(ticketPrice)
最高票价(元) from movie where ticketPrice<=100 group by typeId order by avg(filmLength)
示例: 显示票价不高于 100 元的电影的数量、平均片长和最高票价,按票价片长升序显示平均片长不小于 100 分钟的统计信息,利用 having 子句对分组结果进行过滤
select typeID 类型 ID,count(*) 数量 ,avg(filmLength) 平均片长(分钟),max(ticketPrice)
最高票价(元) from movie where ticketPrice<=100 group by typeId
having avg(filmLength)>100 order by avg(filmLength)
使用where子句实现数据过滤
示例:
统计非“通恒公司”所属线路的数量和营运里程的平均值、最大值和最小值,并按照线路数升序显示查询结果。
select company 公司 , count(*) 线路数 , truncate(avg(miles),1) 平均线路里程 ,
max(miles) 最长线路里程 , min(miles) 最短线路里程 from line where company<> ' 通恒公司 ' group by company order by count(*)
三.多字段分组和having子句
1.示例:依据公交线路所属公司和营运车辆数,分组统计平均营运里程。
select company 公司 , number 营运车辆数 , truncate(avg(miles),1) 平均营运里程 from line group by company, number
2.示例:依据公交车辆型号和车辆类型,分组统计车辆数。
select model 型号 , type 类型 , count(*) 车辆数 from vehicle group by model, type
3.使用 having 指定分组后的筛选条件
示例:分别统计每家公交公司中最长线路里程大于 24 的分组信息,按最长线路里程升序显示。
select company 公司 , max(miles) 最长线路里程 from line
group by company having max(miles)>24 order by max(miles)
总结:
- count 和 sum 函数的区别:
sum 函数是对符合条件的记录的数值列求和,count 函数的值是满足查询条件的结果(或记录)个数。count(column) 用于统计 column 列不为 null 的记录个数。 - 如何对查询结果进行过滤之后再分组统计:
先使用 where 子句表达式对查询结果进行过滤筛选;然后,再使用 group by 子句对 where 子句的输出进行分组统计。 - having 子句的用法:
having 子句的作用是筛选满足条件的组,即在分组之后过滤数据。having 子句的位置放在 group by 子句之后,常包含聚合函数。
最后
以上就是热情猫咪为你收集整理的聚合函数和分组统计一.聚合函数二.group by 分组统计三.多字段分组和having子句总结:的全部内容,希望文章能够帮你解决聚合函数和分组统计一.聚合函数二.group by 分组统计三.多字段分组和having子句总结:所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复