分组查询

  1. 主题: 分组查询
    一. 使用group by进行分组查询

在使用group by关键字时,在select列表中可以指定的项目是有限制的,select

语句中仅许以下几项:

  1. 被分组的列

2.为每个分组返回一个值得表达式,例如用一个列名作为参数的聚合函数
group by的使用我用以下例子说:

查询出员工表中各部门的部门号,最高工资,最低工资。
分组查询

部门是被分组的列,所以使用group by 分组,此处的nvl使用是给没有部门号的员工使其部门号为0.

二、使用having子句进行分组筛选。

where子句只能对没有分组统计前的数据行进行筛选,对分组后的条件的筛选必须使用having子句

例子:下面我们想要查询成绩表中至少5名学生选修的并以3开头的课程的平均成绩。

分组查询
先使用group by 分好组课程号,在使用having 进行分组筛选出信息。Count计数学生人数。

在select语句中,where、group by、having子句和统计函数的执行次序如下:

where子句从数据源中去掉不符合去搜索条件的数据;group by子句搜集数据

行到各个组中,统计函数为各个组计算统计值;having子句去掉不符合其组搜索

条件的各组数据行