SQL SERVER 系列(6)數據表排序和聚集函數
數據表排序:
當我們在對數據庫操作的時候,我們經常會遇到對年齡,對考試成績進行排序的問題,排序可以使我們對所要顯示的數據一目瞭然,因此排序就成爲了重要的一項功能。下面我們對其進行詳細的說明。
排序共有兩種:ASE(升序),DESC(降序)。系統默認是asc。
排序的作用是對滿足條件的記錄按照字段名1進行排列,如果字段名1的值相同。則按照字段名2排列。
排序的語法:
Select 字段名 列表 from 表名 [where] order by 字段名1 asc|desc [,字段名2 asc|desc] ……
下面來看幾個實例:
實例:把yuangong表中的yuangong按照年齡升序
select * from yuangong order by 年齡 asc
實例:在yuangong表中按照部門升序,同一部門中按照年齡降序
select * from yuangong order by 部門 asc,年齡 desc
實例:在yuangong表中對男同志工資進行降序排列
select * from yaungong where 性別='男' order by 工資 desc
關於排序用法很簡單也很容易理解。接下來我們看看聚集函數。
聚集函數:
關於聚集函數就是對數據表中一些數據的總和、平均值、最大值、最小值及彙總的操作。
常用的聚集函數有下面幾種:
sum() 求和
avg() 求平均值
max()求最大值
min()求最小值
count()彙總
接下來用實例來加深對它的理解。
實例:求yuangong表中所有員工年齡的總和
select sum(年齡) from yuangong
實例:求yuangong表中女同志的平均年齡
select avg(年齡) from yuangong
實例:求yuangong表中員工的總人數
select count(*) from yuangong
(注意count()括號中寫爲null的不計)
實例:求yuangong表中工資最少的員工信息
select * from yuangong where 工資=(select min (工資) from yuangong)
實例:求每個部門的平均工資
這個實例必須要用到一個分組命令:group by
select 部門,avg(工資) from yuangong group by 部門
注意:當我們用group by這個命令時對其結果進行過濾時不能用where只能用having。