MySQL中如何求平均值常見(jiàn)實(shí)例(AVG函數(shù)詳解)
前言
在使用 MySQL 進(jìn)行數(shù)據(jù)分析時(shí),計(jì)算平均值是最常見(jiàn)的需求之一。MySQL 提供了內(nèi)置的聚合函數(shù) AVG() 來(lái)幫助我們輕松完成這一任務(wù)。本文將詳細(xì)介紹 AVG() 函數(shù)的使用方法及常見(jiàn)示例。
一、基本語(yǔ)法
SELECT AVG(column_name) FROM table_name;
AVG():表示求平均值的聚合函數(shù)。column_name:要計(jì)算平均值的字段(列名)。table_name:包含該字段的表名。
二、示例講解
假設(shè)我們有一張名為 grades 的表,表結(jié)構(gòu)如下:
| id | name | course | score |
|---|---|---|---|
| 1 | Tom | Math | 85 |
| 2 | Alice | Math | 90 |
| 3 | Bob | English | 78 |
| 4 | Jane | Math | 95 |
1. 計(jì)算全表平均分
SELECT AVG(score) FROM grades;
輸出將是所有記錄中 score 字段的平均值。
2. 計(jì)算某門(mén)課程的平均分(例如:Math)
SELECT AVG(score) FROM grades WHERE course = 'Math';
輸出將是 course 等于 'Math' 的記錄中 score 字段的平均值。
三、結(jié)合分組統(tǒng)計(jì)平均值(GROUP BY)
如果你想分別統(tǒng)計(jì)每門(mén)課程的平均分,可以使用 GROUP BY:
SELECT course, AVG(score) AS average_score FROM grades GROUP BY course;
輸出結(jié)果將是每門(mén)課程對(duì)應(yīng)的平均分?jǐn)?shù)。
四、處理空值(NULL)
AVG() 函數(shù)在計(jì)算時(shí)會(huì)自動(dòng)忽略 NULL 值,因此不需要手動(dòng)篩除:
SELECT AVG(score) FROM grades; -- NULL 值將被自動(dòng)排除,不影響平均值
五、小結(jié)
- 使用
AVG()可以輕松統(tǒng)計(jì)列的平均值。 - 可以搭配
WHERE、GROUP BY等語(yǔ)句進(jìn)行更復(fù)雜的數(shù)據(jù)分析。 AVG()會(huì)自動(dòng)忽略NULL值,避免錯(cuò)誤。
在日常開(kāi)發(fā)中,平均值的統(tǒng)計(jì)常用于報(bào)表、用戶行為分析、商品評(píng)分等業(yè)務(wù)場(chǎng)景,是非常實(shí)用的 SQL 技巧。
附一個(gè)完整示例
假設(shè)表結(jié)構(gòu)如下:
CREATE TABLE grades (
id INT PRIMARY KEY,
name VARCHAR(50),
course VARCHAR(50),
score DECIMAL(5,2)
);
INSERT INTO grades VALUES
(1, 'Tom', 'Math', 85.0),
(2, 'Alice', 'Math', 90.0),
(3, 'Bob', 'English', 78.0),
(4, 'Jane', 'Math', 95.0);查詢每門(mén)課程的平均分(保留2位小數(shù)):
SELECT
course,
ROUND(AVG(score), 2) AS average_score
FROM grades
GROUP BY course;輸出結(jié)果:
course | average_score --------|-------------- Math | 90.00 English | 78.00
到此這篇關(guān)于MySQL中如何求平均值的文章就介紹到這了,更多相關(guān)MySQL AVG函數(shù)求平均值內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Kubernetes中實(shí)現(xiàn) MySQL 讀寫(xiě)分離的詳細(xì)步驟
Kubernetes中實(shí)現(xiàn)MySQL的讀寫(xiě)分離通過(guò)主從復(fù)制架構(gòu),利用Kubernetes部署MySQL主節(jié)點(diǎn)和從節(jié)點(diǎn),并通過(guò)Service實(shí)現(xiàn)讀寫(xiě)分離,提高數(shù)據(jù)庫(kù)性能和可維護(hù)性2024-11-11
Django連接本地mysql數(shù)據(jù)庫(kù)(pycharm)的步驟
這篇文章主要介紹了Django連接本地mysql數(shù)據(jù)庫(kù)(pycharm)的步驟,本文分步驟給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09
什么是分表和分區(qū) MySql數(shù)據(jù)庫(kù)分區(qū)和分表方法
這篇文章主要為大家詳細(xì)介紹了MySql數(shù)據(jù)庫(kù)分區(qū)和分表方法,告訴大家什么是分表和分區(qū),mysql分表和分區(qū)有什么聯(lián)系,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02
MySQL數(shù)據(jù)庫(kù)case?when?then?end的詳細(xì)使用方法
在SQL語(yǔ)法中我們首先使用CASE關(guān)鍵字開(kāi)頭,然后根據(jù)不同的條件使用WHEN關(guān)鍵字,并在每個(gè)條件后面指定結(jié)果,這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫(kù)case?when?then?end的詳細(xì)使用方法,需要的朋友可以參考下2023-12-12
MySQL數(shù)據(jù)庫(kù)可以用任意ip連接訪問(wèn)的方法
本文主要介紹了MySQL數(shù)據(jù)庫(kù)可以用任意ip連接訪問(wèn)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05

