資料應用達人之SQL基礎教程分享10-SQL函式
SQL的函式很有用
2.函式
1、SQL的函式
【知識點介紹】
與大多數的計算機語言一樣,SQL裡也有函式(functions),它的函式一般是對資料執行的,為資料的轉換和處理提供很強大、簡介的作用。
它的使用在語法上可以表達為:
- SELECT 函式(列) FROM 表;
2、函式型別
【知識點介紹】
在SQL中,函式往往被分為兩個型別:
1.Aggregate 函式,也被稱為彙總函式或聚集函式,它的函式操作面向列的資料,並返回單一的值;
2.Scalar 函式,它的函式面向單一的值,返回基於該值操作後的單一的值。
這兩種型別的具體內容,我們會在接下來的課程中一一介紹。
彙總資料的函式
3.Aggregate函式
1、什麼是聚集函式
【知識點介紹】
聚集函式是對某些列的行資料進行計算,並返回一個值,常見的函式有:
函式 描述AVG( ) | 返回某列的平均值 |
COUNT( ) | 返回某列的行數 |
MAX( ) | 返回某列的最大值 |
MIN( ) | 返回某列的最小值 |
SUM( ) | 統計某列值的和 |
2、avg-求平均值
【知識點介紹】
AVG函式用來返回某列的平均值,它通過對列值之和求得該列的平均值。
【例項】
求植物專業學生的學分評價值。
返回的值是學分的平均值,條件是物理學學生。
-
SELECT AVG(Credit) FROM student
- WHERE Major = 'Botany';
3、count-計數
【知識點介紹】
COUNT函式是計數函式,用來統計表中某列有多少行。
我們使用COUNT(*)會對錶中行的所有數目進行計數,無論行資料是否為空。而使用COUNT(列)可以對某列進行行數統計,同樣無視資料是否為空。
【例項】
檢視學生表現在有多少個學生的資料。
(思考下學生表中什麼值是不允許為空的)
ID 和SName在當初設計的時候是不允許空值的列。
- SELECT COUNT(ID) FROM student;
4、max min-最大最小值
【知識點介紹】
MAX和MIN是返回列中的最大值和最小值,它們要求我們指定列名。
【例項】
查詢學生表中最低或最高學分。
Sql程式碼- SELECT MIN(Credit) FROM student;
5、sum-總計
【知識點介紹】
SUM是用來返回列值的和(區分計數),適用於數字型別的資料,字串的和總是返回0。
【例項】
統計女學生的學分。
使用SUM函式,條件子句是滿足性別是女性。
- SELECT sum(Credit) FROM student
- WHERE Sex = 'Female';
6、關於HAVING
【知識點介紹】
聚集函式有個很大的問題,即它在WHERE語句中是無法使用的,比如我們要返回學生表中分數最低的學資訊,我們不假思索會這樣寫:
Sql程式碼- SELECT * FROM student
- WHERE Credit = MAX(Credit); -- 不被SQL支援
然後,這樣在SQL中是不被支援的!
為了讓聚集函式能在WHERE中被使用,SQL裡增加了一個HAVING子句來替代WHERE的作用:
- SELECT 某列, 聚集函式(某列) FROM 表
- WHERE[子句]
- GROUP BY 某列
- HAVING 聚集函式(某列)[子句]
- ORDER BY 某列;
注意語句中WHERE、GROUP BY、HAVING、ORDER BY的優先順序。
【例項】
使用HAVING子句,統計各個專業的學分綜合。
選擇Major列和SUM(Credit)函式即可;
保險起見,SUM的結果大於0即可。
- SELECT Major,SUM(Credit) FROM student
- GROUP BY Major
- HAVING SUM(Credit) > 0;
下文待續。。。。。。
歡迎大家前往訪問我們的官網:
http://www.datanew.com/datanew/homepage
http://www.lechuangzhe.com/homepage