天天看点

where,group by, having order by

使用说明:

select 列x[,聚合函数] 
from 表名 
where 筛选条件 
group by 列x(是select那里的列x) 
having 过滤条件 
order by 列名(或聚合函数,需要时select那里出现的) [desc | asc]      

执行顺序:

1、 where返回符合条件的结果集

2、 group by返回分类结果集

3、 select返回选择后的结果集

4、having返回符合条件的结果集

5、 order by按照某种方式对某列进行排序

至于为什么有了where只有还要有having?

不仅是因为having的执行时间不同,更重要的是where后面不能跟聚合函数,我们待会再下面的例子里来细说。

举个栗子:

select name, sum(grade)
from people
where sex='男'
group by name
having sum(grade)>100
order by sum(grade) desc