案例:
SELECT sc.sno, SUM(sc.score) AS nums FROM sc
INNER JOIN student
ON sc.sno=student.sno
WHERE sc.score > 60
GROUP BY sc.sno
HAVING SUM(sc.score) > 0;
这里是一条比较齐全的查询语句,可以按顺序这么来分析:
1.from:数据及条件涉及到哪些表
2.where:数据的初步筛选(可以认为是对单条记录的筛选,该地方不可使用聚合函数)
3.group by:将初步筛选的数据按条件分组
4.having:对已分组的数据进行组级别的筛选(SQL 中增加 HAVING 子句原因是WHERE 关键字无法与聚合函数一起使用,HAVING 子句可以让我们筛选分组后的各组数据),一般配合函数使用,对整组某列或多列数据的进行函数从而是否达到条件,不符合的组去除。
5.select:对最后符合条件的数据进行展示,可使用函数。