当前位置:实例文章 » 其他实例» [文章]MySQL学习笔记 ------ 分组函数

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 中常用的分组函数和相关语法。这些函数可以帮助我们对数据进行统计、计算等操作,提高数据分析效率。

相关标签:笔记mysql数据库sql
其他信息

其他资源

Top