天天看點

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