当前位置: 首页 > news >正文

【MySQL✨】MySQL 入门之旅 · 第八篇:数据排序与分组

本篇文章将带你学习 MySQL 中的 ORDER BY 排序GROUP BY 分组,这两个操作是数据分析中非常常见的场景。
通过排序,你可以按指定的规则查看数据的先后顺序;通过分组,你可以对数据进行分类统计,比如计算每个部门的平均工资、每位客户的订单数等。


目录

  1. 使用 ORDER BY 排序
  2. 使用 GROUP BY 分组并统计数据
  3. 小结

使用 ORDER BY 排序

在 SQL 中,默认返回的数据是无序的。如果我们希望结果集按照某个字段排序,就需要用到 ORDER BY

基本语法

SELECT column1, column2, ...
FROM table_name
ORDER BY column1 [ASC|DESC], column2 [ASC|DESC];
  • ASC:升序(从小到大,默认)
  • DESC:降序(从大到小)

示例

假设有一张 users 表:

idnameagescore
1Alice2285
2Bob2590
3Carol2278
4David2388
1. 按年龄升序排序
SELECT * FROM users
ORDER BY age ASC;

结果:

idnameagescore
1Alice2285
3Carol2278
4David2388
2Bob2590
2. 按成绩降序排序
SELECT * FROM users
ORDER BY score DESC;

结果:

idnameagescore
2Bob2590
4David2388
1Alice2285
3Carol2278
3. 先按年龄升序,再按成绩降序
SELECT * FROM users
ORDER BY age ASC, score DESC;

结果:

idnameagescore
1Alice2285
3Carol2278
4David2388
2Bob2590

使用 GROUP BY 分组并统计数据

当我们需要按某个字段进行统计时,就要用到 GROUP BY
它通常和 聚合函数 一起使用:

  • COUNT():统计数量
  • SUM():求和
  • AVG():平均值
  • MAX():最大值
  • MIN():最小值

基本语法

SELECT column, aggregate_function(column2)
FROM table_name
GROUP BY column;

示例

假设有一张 orders 表:

order_idcustomer_idamount
1101100
2102150
3101200
410350
5102300
1. 统计每个客户的订单数
SELECT customer_id, COUNT(*) AS order_count
FROM orders
GROUP BY customer_id;

结果:

customer_idorder_count
1012
1022
1031
2. 统计每个客户的总消费金额
SELECT customer_id, SUM(amount) AS total_amount
FROM orders
GROUP BY customer_id;

结果:

customer_idtotal_amount
101300
102450
10350
3. 统计每个客户的最高订单金额
SELECT customer_id, MAX(amount) AS max_order
FROM orders
GROUP BY customer_id;

结果:

customer_idmax_order
101200
102300
10350
4. 使用 HAVING 过滤分组结果

HAVING 用于对分组后的结果再做过滤(类似 WHERE,但针对聚合后的数据)。

SELECT customer_id, SUM(amount) AS total_amount
FROM orders
GROUP BY customer_id
HAVING total_amount > 200;

结果:

customer_idtotal_amount
101300
102450

小结

  • ORDER BY 用于对结果排序,可升序 ASC 或降序 DESC
  • GROUP BY 用于对数据分组,通常结合聚合函数(COUNT、SUM、AVG、MAX、MIN);
  • HAVING 用来过滤分组后的结果,作用类似于 WHERE

📘 下一篇,我们将学习 MySQL 聚合函数与分组查询,带你了解如何使用聚合函数对数据进行统计分析。

http://www.dtcms.com/a/415164.html

相关文章:

  • deepseek Kotlin Flow 全面详解
  • MTK-Android13-Dialer 通话界面定制修改
  • 化妆品电子商务网站开发流程描述中山网站建设推荐
  • 宿州移动网站建设广州模板网站
  • 旅游景区网站建设哈尔滨发布信息的网站
  • RVC WebUI(Retrieval-based-Voice-Conversion-WebUI)配置
  • 在线制作简历网站网页结构布局
  • 建网站要备案东莞网站制作品牌祥奔科技
  • 棋盘覆盖问题
  • 大邑网站建设百合居装饰公司官网
  • C++基础(3)-类的6个默认成员函数
  • 做营销型网站需要注意哪些点开发小程序费用
  • AI“点亮”萤火虫:边缘机器学习让微光成像走进4K时代
  • 【手撕机器学习 02】手撕算法的基石:精通NumPy与Pandas向量化思维
  • 一种好用开发的轻量级 Markdown 编辑器
  • 网站用户管理系统徐州市城乡建设局网站
  • 花店网站首页模版帝国cms使用教程
  • React-router v6学生管理系统笔记
  • 手写签名太麻烦?智能签名生成器免费实测 智能签名生成器、智能签名生成器使用、免费电子签名工具、Windows 电子签名软件、办公效率工具
  • 建设银行六安市分行网站hreflang wordpress
  • N8N Workflow Collection - 专业级自动化工作流库
  • 有没有专业做特产的网站小企业如何建网站
  • Android 6.0+ 动态权限请求模块,这个模块会包含 权限检查、请求、结果处理 等核心功能,并且支持 单个 / 多个权限请求、权限拒绝后的引导
  • Android -自定义Binding Adapter实战应用
  • 网站优化提升速度网站建设权利义务
  • 【复现】一种基于价格弹性矩阵的居民峰谷分时电价激励策略【需求响应】
  • 【怎么复制cmd命令行里面的文字输出和报错】
  • Oracle体系结构-RECO详解
  • 2025.9.27总结
  • 做网站怎么跟客户谈话搜狗优化好的网站