SQL統計函數的使用方法?
1、在使用SQL查詢數據時,有時希望對查詢的結果集進行統計分析。例如,統計所有課程的單價總和、求出結果集所有記錄的最大值或最小值、結果集中的記錄數量等統計數據。這就需要用到SQL統計函數。SQL統計函數是在查詢結果集的基礎上對列數據進行各種統計運算,運算的結果形成一條匯總記錄。下表給出了MySQL提供的統計函數及其功能。
2、上表中的ALL為統計函數的默認選項,指計算所有的值;使用DISTINCT關鍵字則去掉重復值;列表表達式是指含有列名的表達式。下面給出幾個常用統計函數的例子。
例1:查詢mooc數據庫的course表,查詢所有課程記錄,并求出課程記錄價格字段的總和。
求課程記錄價格字段的總和可以使用SUM函數,SUM函數只能用于數值型字段,并且忽略列值為NULL的記錄。在查詢窗口輸入下面的SQL語句。
SELECT name, SUM(price) as 總價 FROM course
在上面的SQL語句中,使用SUM函數計算price字段值的總和,并使用AS關鍵字將price字段別名為“總價”。SQL查詢結果如下圖所示。
3、例2:查詢mooc數據庫的course表,查詢所有課程記錄,并求出課程記錄價格字段的最大值和最小值。
求課程記錄價格字段的最大值和最小值,可以使用MAX和MIN函數,MAX函數求出給定列值的最大值,MIN函數求出給定列值的最小值,MAX和MIN函數可用于數值型字段、字符串型字段、日期類型字段。在查詢窗口輸入下面的SQL語句。
SELECT MAX(price) AS 最大值,MIN(price) AS 最小值 FROM course
在上面的SQL語句中,使用MAX函數求出所有課程記錄price字段的最大值,并使用AS關鍵字將price字段別名為“最大值”;使用MIN函數求出所有課程記錄price字段的最小值,并使用AS關鍵字將price字段別名為“最小值”。SQL查詢結果如下圖所示。
4、例3:查詢mooc數據庫的course表,查詢類別為“機器學習”的課程記錄,并求出課程數量。
求課程的數量可以使用COUNT函數,COUNT函數用于統計查詢結果集中記錄的個數,在COUNT函數中,“*”用于統計所有記錄的個數,ALL關鍵字用于統計指定列的列值非空記錄個數,DISTINCT關鍵字用于統計指定列的列值非空且不重復的記錄個數,默認值為ALL。在查詢窗口輸入下面的SQL語句。
SELECT COUNT(*) AS 課程總數 FROM course WHERE category="機器學習"
在上面的SQL語句中,使用COUNT函數求出查詢結果集的記錄數,在COUNT函數中使用“*”指明要統計所有記錄個數。SQL查詢結果如下圖所示。
5、例4:查詢mooc數據庫的course表,查詢所有課程記錄,并求出課程單價的平均值。
求課程單價的平均值,可以使用AVG函數,AVG函數用于計算給定列值的平均值,AVG函數只能用于數值型字段。在查詢窗口輸入下面的SQL語句。
SELECT AVG(price) AS 平均價格 FROM course
在上面的SQL語句中,使用AVG函數求出課程記錄price字段的平均值,并使用AS關鍵字將price字段別名為“平均價格”。SQL查詢結果如下圖所示。