我是靠谱客的博主 热情猫咪,最近开发中收集的这篇文章主要介绍聚合函数和分组统计一.聚合函数二.group by 分组统计三.多字段分组和having子句总结:,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一.聚合函数

聚合函数是 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 分组统计

语法:

groupby 字段列表 [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子句总结:所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部