《用實例學習SQL》第二篇:單表查詢(3)

相關表
介紹order by、group by 和聚集函數(count,avg,sum, max,min)
(1)、order by子句:排序子句,對整個表或者group by分的組進行排序。
不能再嵌套查詢中使用order by

select *
from Sc
where Sno = 3
order by Grade desc, Sno asc;
# 將結果表按grade 的降序排序,如果有grade相同的,再按Sno的升序排序。

(2)、聚集函數:count, avg, max, min,sum
當查詢中沒有group by子句時,聚集函數作用的是整個table;
當用了group by子句進行分組時,聚集函數作用於每一個分組。

(3)、group by x (having 條件謂詞)。
其將查詢結果按某一列或多列的值分組,該列的值或多列值都相等的元組分爲一組。

select *
from Sc
group by Cno, Sname;
# 只有當Cno和Sname都相等的元組纔會被分到一組。
select Sno, avg(Grade)
from Sc
group by Sno
having avg(grade) >= 90;
# having子句的篩選對象是符合條件的組,而where是對每一個元組進行篩選。這是本質區別。
# 聚集函數只能在select和having子句中使用。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章