MySQL分组查询与聚合函数实战解析
版权申诉
37 浏览量
更新于2024-09-11
收藏 83KB PDF 举报
【资源摘要信息】: "MySQL 分组查询与聚合函数用于对数据进行逻辑分组和聚合计算,常用于数据分析和报表生成。"
在数据库管理中,MySQL 提供了强大的查询功能,其中分组查询和聚合函数是数据分析的重要工具。分组查询允许我们将数据按照一个或多个字段进行分类,形成不同的逻辑组,然后对每个组应用聚合函数,计算出每个组的特定统计信息。
分组查询的基本语法如下:
```sql
SELECT column1, aggregate_function(column2), ...
FROM table_name
WHERE condition
GROUP BY column1, column2, ...
HAVING group_condition;
```
- `SELECT` 子句:选择要显示的列,可以包含聚合函数或分组列。
- `aggregate_function(column2)`:聚合函数用于对分组后的数据进行计算,如 AVG(), COUNT(), MAX(), MIN(), SUM() 等。
- `table_name`:要从中查询的表名。
- `WHERE` 子句:可选,用于指定筛选条件。
- `GROUP BY` 子句:定义数据分组的依据,可以包含一个或多个列。
- `HAVING` 子句:可选,用于在分组后对数据进行进一步筛选,类似于 `WHERE`,但只能应用于聚合后的结果。
聚合函数的详细介绍如下:
1. **AVG()**:计算指定列的平均值。例如,计算用户表中所有用户的平均年龄:
```sql
SELECT AVG(age) FROM user;
```
2. **COUNT()**:返回指定列的行数,可以是所有行或满足特定条件的行。如果无条件,返回整个表的行数;如果指定列,则返回非 NULL 行数:
```sql
SELECT COUNT(*) FROM user; // 全部行数
SELECT COUNT(age) FROM user; // age 列非 NULL 的行数
```
3. **MAX()**:返回指定列的最大值:
```sql
SELECT MAX(age) FROM user;
```
4. **MIN()**:返回指定列的最小值:
```sql
SELECT MIN(age) FROM user;
```
5. **SUM()**:返回指定列的总和:
```sql
SELECT SUM(balance) FROM account; // 计算账户余额总和
```
在使用分组查询时,`SELECT` 子句中的字段要么是 `GROUP BY` 后面的列,要么是聚合函数的结果,否则会导致错误。这是因为分组查询的结果是对每个分组的聚合信息,而不是原始的行数据。
例如,如果我们想按性别分组,计算每个性别用户数的平均年龄,可以这样写:
```sql
SELECT sex, AVG(age) FROM user GROUP BY sex;
```
这将返回每个性别的用户平均年龄。
MySQL 的分组查询和聚合函数是数据分析的核心,它们帮助我们快速获取数据集的概括性信息,支持更高效的决策制定和业务洞察。通过熟练掌握这些功能,你可以更有效地处理和理解海量数据库数据。
2023-08-03 上传
2020-12-16 上传
2020-12-14 上传
2023-08-16 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
weixin_38645266
- 粉丝: 4
- 资源: 948
最新资源
- sicherheit_ws:安全概念讲习班
- Bregman Cookbook:此工具箱提供基于 Bregman Iterations 的信号/图像/3D 处理-matlab开发
- 下一个大学
- fccWebDesign:在此仓库内,有我为在线课程(在freeCodeCamp上进行的响应式Web设计认证)制作的项目
- dchr.host:端到端K8s CICD练习
- 4ampr-fj2021-paginas-web-semana-03:专业人士
- Accuinsight-1.0.36-py2.py3-none-any.whl.zip
- vicms:用于python-flask的迷你内容管理架构
- Atcoder
- Pure
- irawansyahh.github.io:我的个人网站
- ask:一种在 Node 或浏览器中构建 HTTP 请求的简单、可链接的方式
- Dark Crystals New Tab Game Theme-crx插件
- 库存-REST-API:REST APIのテスト
- JavascriptVerletAlgorithm
- antiwasm:Web程序集objdump