您好,登錄后才能下訂單哦!
小編給大家分享一下mysql中統計數據的方法,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
mysql中統計數據的方法:1、使用MAX()函數統計某個字段最大數據;2、使用MIN()函數統計某個字段最小數據;3、使用COUNT()函數統計查詢結果的行數;4、使用SUM()函數統計數據之和;5、使用AVG()函數統計平均數。
MySQL MAX() 函數
MySQL MAX() 函數是用來返回指定列中的最大值。
為了方便理解,首先創建一個學生成績表 tb_students_score,學生成績表的數據內容如下所示。
mysql> use test_db; Database changed mysql> SELECT * FROM tb_students_score; +--------------+---------------+ | student_name | student_score | +--------------+---------------+ | Dany | 90 | | Green | 99 | | Henry | 95 | | Jane | 98 | | Jim | 88 | | John | 94 | | Lily | 100 | | Susan | 96 | | Thomas | 93 | | Tom | 89 | +--------------+---------------+ 10 rows in set (0.13 sec)
【實例 1】在 tb_students_score 表中查找最高的成績,輸入的 SQL 語句和執行結果如下所示。
mysql> SELECT MAX(student_score) -> AS max_score -> FROM tb_students_score; +-----------+ | max_score | +-----------+ | 100 | +-----------+ 1 row in set (0.06 sec)
由運行結果可以看到,MAX() 函數查詢出 student_score 字段的最大值為 100。
MAX() 函數不僅適用于查找數值類型,也可應用于字符類型。
【實例 2】在 tb_students_score 表中查找 student_name 的最大值,輸入的 SQL 語句和執行結果如下所示。
mysql> SELECT MAX(student_name) -> AS max_name -> FROM tb_students_score; +----------+ | max_name | +----------+ | Tom | +----------+ 1 row in set (0.03 sec)
由運行結果可以看到,MAX() 函數可以對字母進行大小判斷,并返回最大的字符或者字符串值。
注意:MAX() 函數還可以返回任意列中的最大值,包括返回字符類型的最大值。在對字符類型的數據進行比較時,按照字符的 ASCII 碼值大小進行比較,從 a~z,a 的 ASCII 碼最小,z 的最大。在比較時,先比較第一個字符,如果相等,繼續比較下一個字符,一直到兩個字符不相等或者字符結束為止。例如,b 與 t 比較時,t 為最大值;bcd 與 bca 比較時,bcd 為最大值。
MySQL MIN() 函數
MySQL MIN() 函數是用來返回查詢列中的最小值。
為了便于理解,需要用到在上一節講 MAX() 函數時創建的數據表 tb_students_score。
【實例】在 tb_students_score 表中查找最低的成績,輸入的 SQL 語句和執行結果如下所示。
mysql> SELECT MIN(student_score) -> AS min_score -> FROM tb_students_score; +-----------+ | min_score | +-----------+ | 88 | +-----------+ 1 row in set (0.00 sec)
由結果可以看到,MIN() 函數查詢出 student_score 字段的最小值為 88。
提示:MIN() 函數與 MAX() 函數類似,不僅適用于查找數值類型,也可應用于字符類型。
MySQL COUNT() 函數
MySQL COUNT() 函數統計數據表中包含的記錄行的總數,或者根據查詢結果返回列中包含的數據行數,使用方法有以下兩種:
COUNT(*) 計算表中總的行數,無論某列有數值或者為空值。
COUNT(字段名)計算指定列下總的行數,計算時將忽略空值的行。
這里需要用到以下在介紹 MAX() 函數時創建的表 tb_students_score 。
【實例】查詢 tb_students_score 表中總的行數,輸入的 SQL 語句和執行結果如下所示。
mysql> SELECT COUNT(*) -> AS students_number -> FROM tb_students_score; +-----------------+ | students_number | +-----------------+ | 10 | +-----------------+ 1 row in set (0.03 sec)
由查詢結果可以看到,COUNT(*) 返回 tb_students_score 表中記錄的總行數,無論值是什么。返回的總數的名稱為 students_number。
提示:在計算總數的時候對待 NULL 值的方式是,指定列的值為空的行被 COUNT() 函數忽略,但若不指定列,而在 COUNT() 函數中使用星號“*”,則所有記錄都不忽略。
MySQL SUM()函數
MySQL SUM() 是一個求總和的函數,返回指定列值的總和。
SUM() 函數是如何工作的?
如果在沒有返回匹配行 SELECT 語句中使用 SUM 函數,則 SUM 函數返回 NULL,而不是 0。
DISTINCT 運算符允許計算集合中的不同值。
SUM 函數忽略計算中的 NULL 值。
這里需要用到以下在介紹 MAX() 函數時創建的表 tb_students_score 。
【實例】在 tb_students_score 表中計算學生成績的總分,輸入的 SQL 語句和執行結果如下所示。
mysql> SELECT SUM(student_score) -> AS score_sum -> FROM tb_students_score; +-----------+ | score_sum | +-----------+ | 942 | +-----------+ 1 row in set (0.00 sec)
由查詢結果可以看到,SUM() 函數返回學生的所有成績之和為 942。
提示:SUM() 函數在計算時,忽略列值為 NULL 的行。
MySQL AVG() 函數
MySQL AVG() 函數通過計算返回的行數和每一行數據的和,求得指定列數據的平均值。
這里需要用到以下在介紹 MAX() 函數時創建的表 tb_students_score 。
【實例】在 tb_students_score 表中,查詢所有學生成績的平均值,輸入的 SQL 語句和執行結果如下所示。
mysql> SELECT AVG(student_score) -> AS score_avg -> FROM tb_students_score; +-----------+ | score_avg | +-----------+ | 94.2000 | +-----------+ 1 row in set (0.03 sec)
提示:使用 AVG() 函數時,參數為要計算的列名稱,若要得到多個列的平均值,則需要在每一列都使用 AVG() 函數。
以上是mysql中統計數據的方法的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。