溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

mysql中統(tǒng)計數(shù)據(jù)的方法

發(fā)布時間:2020-10-20 18:51:25 來源:億速云 閱讀:410 作者:小新 欄目:MySQL數(shù)據(jù)庫

小編給大家分享一下mysql中統(tǒng)計數(shù)據(jù)的方法,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

mysql中統(tǒng)計數(shù)據(jù)的方法:1、使用MAX()函數(shù)統(tǒng)計某個字段最大數(shù)據(jù);2、使用MIN()函數(shù)統(tǒng)計某個字段最小數(shù)據(jù);3、使用COUNT()函數(shù)統(tǒng)計查詢結(jié)果的行數(shù);4、使用SUM()函數(shù)統(tǒng)計數(shù)據(jù)之和;5、使用AVG()函數(shù)統(tǒng)計平均數(shù)。

MySQL MAX() 函數(shù)

MySQL MAX() 函數(shù)是用來返回指定列中的最大值。

為了方便理解,首先創(chuàng)建一個學(xué)生成績表 tb_students_score,學(xué)生成績表的數(shù)據(jù)內(nèi)容如下所示。

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 語句和執(zhí)行結(jié)果如下所示。

mysql> SELECT MAX(student_score)
    -> AS max_score
    -> FROM tb_students_score;
+-----------+
| max_score |
+-----------+
|       100 |
+-----------+
1 row in set (0.06 sec)

由運行結(jié)果可以看到,MAX() 函數(shù)查詢出 student_score 字段的最大值為 100。

MAX() 函數(shù)不僅適用于查找數(shù)值類型,也可應(yīng)用于字符類型。

【實例 2】在 tb_students_score 表中查找 student_name 的最大值,輸入的 SQL 語句和執(zhí)行結(jié)果如下所示。

mysql> SELECT MAX(student_name)
    -> AS max_name
    -> FROM tb_students_score;
+----------+
| max_name |
+----------+
| Tom      |
+----------+
1 row in set (0.03 sec)

由運行結(jié)果可以看到,MAX() 函數(shù)可以對字母進(jìn)行大小判斷,并返回最大的字符或者字符串值。

注意:MAX() 函數(shù)還可以返回任意列中的最大值,包括返回字符類型的最大值。在對字符類型的數(shù)據(jù)進(jìn)行比較時,按照字符的 ASCII 碼值大小進(jìn)行比較,從 a~z,a 的 ASCII 碼最小,z 的最大。在比較時,先比較第一個字符,如果相等,繼續(xù)比較下一個字符,一直到兩個字符不相等或者字符結(jié)束為止。例如,b 與 t 比較時,t 為最大值;bcd 與 bca 比較時,bcd 為最大值。

MySQL MIN() 函數(shù)

MySQL MIN() 函數(shù)是用來返回查詢列中的最小值。

為了便于理解,需要用到在上一節(jié)講 MAX() 函數(shù)時創(chuàng)建的數(shù)據(jù)表 tb_students_score。

【實例】在 tb_students_score 表中查找最低的成績,輸入的 SQL 語句和執(zhí)行結(jié)果如下所示。

mysql> SELECT MIN(student_score)
    -> AS min_score
    -> FROM tb_students_score;
+-----------+
| min_score |
+-----------+
|        88 |
+-----------+
1 row in set (0.00 sec)

由結(jié)果可以看到,MIN() 函數(shù)查詢出 student_score 字段的最小值為 88。

提示:MIN() 函數(shù)與 MAX() 函數(shù)類似,不僅適用于查找數(shù)值類型,也可應(yīng)用于字符類型。

MySQL COUNT() 函數(shù)

MySQL COUNT() 函數(shù)統(tǒng)計數(shù)據(jù)表中包含的記錄行的總數(shù),或者根據(jù)查詢結(jié)果返回列中包含的數(shù)據(jù)行數(shù),使用方法有以下兩種:

COUNT(*) 計算表中總的行數(shù),無論某列有數(shù)值或者為空值。

COUNT(字段名)計算指定列下總的行數(shù),計算時將忽略空值的行。

這里需要用到以下在介紹 MAX() 函數(shù)時創(chuàng)建的表 tb_students_score 。

【實例】查詢 tb_students_score 表中總的行數(shù),輸入的 SQL 語句和執(zhí)行結(jié)果如下所示。

mysql> SELECT COUNT(*)
    -> AS students_number
    -> FROM tb_students_score;
+-----------------+
| students_number |
+-----------------+
|              10 |
+-----------------+
1 row in set (0.03 sec)

由查詢結(jié)果可以看到,COUNT(*) 返回 tb_students_score 表中記錄的總行數(shù),無論值是什么。返回的總數(shù)的名稱為 students_number。

提示:在計算總數(shù)的時候?qū)Υ?NULL 值的方式是,指定列的值為空的行被 COUNT() 函數(shù)忽略,但若不指定列,而在 COUNT() 函數(shù)中使用星號“*”,則所有記錄都不忽略。

MySQL SUM()函數(shù)

MySQL SUM() 是一個求總和的函數(shù),返回指定列值的總和。

SUM() 函數(shù)是如何工作的?

  • 如果在沒有返回匹配行 SELECT 語句中使用 SUM 函數(shù),則 SUM 函數(shù)返回 NULL,而不是 0。

  • DISTINCT 運算符允許計算集合中的不同值。

  • SUM 函數(shù)忽略計算中的 NULL 值。

這里需要用到以下在介紹 MAX() 函數(shù)時創(chuàng)建的表 tb_students_score 。

【實例】在 tb_students_score 表中計算學(xué)生成績的總分,輸入的 SQL 語句和執(zhí)行結(jié)果如下所示。

mysql> SELECT SUM(student_score)
    -> AS score_sum
    -> FROM tb_students_score;
+-----------+
| score_sum |
+-----------+
|       942 |
+-----------+
1 row in set (0.00 sec)

由查詢結(jié)果可以看到,SUM() 函數(shù)返回學(xué)生的所有成績之和為 942。

提示:SUM() 函數(shù)在計算時,忽略列值為 NULL 的行。

MySQL AVG() 函數(shù)

MySQL AVG() 函數(shù)通過計算返回的行數(shù)和每一行數(shù)據(jù)的和,求得指定列數(shù)據(jù)的平均值。

這里需要用到以下在介紹 MAX() 函數(shù)時創(chuàng)建的表 tb_students_score 。

【實例】在 tb_students_score 表中,查詢所有學(xué)生成績的平均值,輸入的 SQL 語句和執(zhí)行結(jié)果如下所示。

mysql> SELECT AVG(student_score)
    -> AS score_avg
    -> FROM tb_students_score;
+-----------+
| score_avg |
+-----------+
|   94.2000 |
+-----------+
1 row in set (0.03 sec)

提示:使用 AVG() 函數(shù)時,參數(shù)為要計算的列名稱,若要得到多個列的平均值,則需要在每一列都使用 AVG() 函數(shù)。

以上是mysql中統(tǒng)計數(shù)據(jù)的方法的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI