MySQL学习笔记 ------ 分组函数
发布人:shili8
发布时间:2025-03-04 02:32
阅读次数:0
**MySQL 学习笔记 --- 分组函数**
在 MySQL 中,分组函数是用于对数据进行分组操作的函数。这些函数可以帮助我们统计出某个列值出现的次数、计算某个列值的平均值、最大值或最小值等。
###1. COUNT()
COUNT() 函数用于统计出某个列值出现的次数。
**语法:**
sqlCOUNT([DISTINCT] expr)
**参数:**
* `expr`:要统计的表达式。
* `DISTINCT`:如果指定,则只统计每组中不同的值。
**示例代码:**
sqlCREATE TABLE students ( id INT, name VARCHAR(20), age INT, score DECIMAL(3,2) ); INSERT INTO students (id, name, age, score) VALUES(1, '张三',18,85.00), (2, '李四',19,90.00), (3, '王五',20,78.00), (4, '赵六',21,92.00), (5, '孙七',22,88.00); SELECT COUNT(*) FROM students; // 统计学生总数SELECT COUNT(DISTINCT score) FROM students; // 统计学生分数的不同值数量
###2. SUM()
SUM() 函数用于计算某个列值的总和。
**语法:**
sqlSUM([DISTINCT] expr)
**参数:**
* `expr`:要计算的表达式。
* `DISTINCT`:如果指定,则只计算每组中不同的值。
**示例代码:**
sqlSELECT SUM(score) FROM students; // 统计学生总分数SELECT SUM(DISTINCT score) FROM students; // 统计学生分数的不同值之和
###3. AVG()
AVG() 函数用于计算某个列值的平均值。
**语法:**
sqlAVG([DISTINCT] expr)
**参数:**
* `expr`:要计算的表达式。
* `DISTINCT`:如果指定,则只计算每组中不同的值。
**示例代码:**
sqlSELECT AVG(score) FROM students; // 统计学生平均分数SELECT AVG(DISTINCT score) FROM students; // 统计学生分数的不同值之平均值
###4. MAX()
MAX() 函数用于计算某个列值的最大值。
**语法:**
sqlMAX(expr)
**参数:**
* `expr`:要计算的表达式。
**示例代码:**
sqlSELECT MAX(score) FROM students; // 统计学生最高分数
###5. MIN()
MIN() 函数用于计算某个列值的最小值。
**语法:**
sqlMIN(expr)
**参数:**
* `expr`:要计算的表达式。
**示例代码:**
sqlSELECT MIN(score) FROM students; // 统计学生最低分数
###6. GROUP BYGROUP BY 子句用于对数据进行分组操作。
**语法:**
sqlGROUP BY expr [, expr] ...
**参数:**
* `expr`:要分组的表达式。
**示例代码:**
sqlSELECT name, AVG(score) FROM students GROUP BY name; // 统计每个学生的平均分数
###7. HAVINGHAVING 子句用于过滤分组后的数据。
**语法:**
sqlHAVING expr [, expr] ...
**参数:**
* `expr`:要过滤的表达式。
**示例代码:**
sqlSELECT name, AVG(score) FROM students GROUP BY name HAVING AVG(score) >80; // 统计每个学生平均分数大于80的学生
以上就是 MySQL 中常用的分组函数和相关语法。这些函数可以帮助我们对数据进行统计、计算等操作,提高数据分析效率。