标准模板
这套标准模板确定了先后顺序
1 | SELECT |
其中 Where可以不加,Having,与Order by也可以不加
Group By
类似排序,只不过是把相同得组进行排序,组与组之间进行排序
例1:
- 求所有部门的人得个数,包括没有部门得人
1 | SELECT |
例1输出结果
count(*) | department_id |
---|---|
1 | null |
1 | 10 |
2 | 20 |
由例可知 在select语句中deparment_id 与Group by中得完全相同,可以取别名。Group by 也可以用别名进行判断
Where
在分组前进行筛选,是在表中的列
例2:
- 求所有部门的人的个数,不包含为部门为空的人
1 | SELECT |
例2输出结果
count(*) | department_id |
---|---|
1 | 10 |
2 | 20 |
6 | 30 |
Having
在分组之后进行比较,也就是对原本表所没有的字段进行筛选。
例3:
求所有部门(部门为空,忽略不计)中最低工资不低于5000的人个数.
SELECT COUNT(*), MIN(salary),department_id FROM employees WHERE department_id IS NOT NULL GROUP BY department_id HAVING MIN(salary) >= 5000 <!--3-->
例4输出结果
COUNT(*) | min(salary) | department_id |
---|---|---|
3 | 17000 | 90 |
1 | 10000 | 70 |
2 | 8300 | 110 |