group by 子句:
使用 group by 子句可以将数据划分到不同的组中,实现对记录的分组查询。group by 从英文字面的意义上可以理解为“根据(by)一定的规则进行分组(group)”,该子句的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对这若干个小区域进行统计汇总。
group by 子句通常与聚合函数同时使用,如 max()、min()、count()、sum() 和 avg()。
语法:
group by 字段列表 [having 条件表达式 ]
示例:
创建分组:
统计每一家公交公司的线路数和线路长度平均值、最大值和最小值,按线路数升序显示。
select company 公司 , count(*) 线路数 , truncate(avg(miles),1) 平均线路里程 , max(miles) 最长线路里程 , min(miles) 最短线路里程 from line
解释:
函数 truncate(x,d) 用于返回 x 保留到小数点后 d 位的值。
分析:
依据线路所属公司分组统计线路相关数据
。
线路数和线路里程的平均值、最小值和最大值均依据线路所属公司分组计算所得
统计拥有不同运营车辆数的公交线路数量,按运营车辆数升序显示。
select number 运营车辆数, count(lineNo) 公交线路数 from line group by number order by number
分析:
依据运营车辆数的不同,分组统计其所对应的公交线路的数量
。
分组列为运营车辆数
。