SQL--4--查--group by(分组查询)
一.分组查询--group by
1.原因:实际应用中,需先分组,再对每组数据进行操作。
2.格式:select … from … group by … (group by 后可跟多个,用”,”分隔)
3.分组函数不能直接在where后使用:

4.在一条select语句当中,若有group by语句,select后只能跟:参加分组的字段,以及分组函数。其它的一律不能跟,虽然可执行其语句,但毫无意义。

5.对分组后数据进一步过滤:--having
使用规则:having不能单独使用,不能代替where,必须和group by联合使用。
使用建议:where和having,优先选择where,where实在完成不了了,再选择having
举例:找出每个部门最高薪资,要求显示最高薪资大于3000的。
| 方法 | 语句 |
| having() |
select deptno,max(sal) from emp group by deptno having max(sal)>3000; |
| 普通 |
select deptno,max(sal) from emp where sal > 3000 group by deptno; |
6.执行顺序:
①表格排序:
| select | from | where | group by | having |
| 5 | 1 | 2 | 3 | 4 |
| 查询 | 从... | 过滤 | 分组 | 约等于where |
②文字描述:
a.从某张表中查询数据;
b.先经过where条件筛选出有价值的数据;
c.对这些有价值的数据进行分组;
d.分组之后可以使用having继续筛选;
e.select查询出来;
f.最后排序输出。

浙公网安备 33010602011771号