1. group by
group by按照查詢結(jié)果集中的某一列(或多列),進(jìn)行分組,值相等的為一組。
比如原始表

table1.png
select 類別, sum(數(shù)量) as 數(shù)量之和
from A
group by 類別
返回結(jié)果:

table2.png
2.order by
使用order by,一般是用來,依照查詢結(jié)果的某一列(或多列)屬性,進(jìn)行排序(升序:ASC;降序:DESC;默認(rèn)為升序)。
select 類別, sum(數(shù)量) AS 數(shù)量之和
from A
group by 類別
order by sum(數(shù)量) desc

table3.png
3. group by all
select 類別, 摘要, sum(數(shù)量) as 數(shù)量之和
from A
group by all 類別, 摘要
結(jié)果的表中就會出現(xiàn)三列
4.having 和 where 的區(qū)別
Where是一個約束聲明,在查詢數(shù)據(jù)庫的結(jié)果返回之前對數(shù)據(jù)庫中的查詢條件進(jìn)行約束,即在結(jié)果返回之前起作用,且where后面不能使用聚合函數(shù)。
Having是一個過濾聲明,所謂過濾是在查詢數(shù)據(jù)庫的結(jié)果返回之后進(jìn)行過濾,即在結(jié)果返回之后起作用,并且having后面可以使用聚合函數(shù)。
所謂聚合函數(shù),是對一組值進(jìn)行計算并且返回單一值的函數(shù):sum---求和,count---計數(shù),max---最大值,avg---平均值等。