MySQL 聚合函数案例解析:深入实践与应用

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用版 2核4GB 50GB
简介: MySQL 聚合函数案例解析:深入实践与应用

MySQL 聚合函数案例解析:深入实践与应用

MySQL聚合函数是数据库查询中极为重要的工具,它们能够从一组行中计算出单个值,如总和、平均值、最大值等,广泛应用于数据分析、报表生成及业务洞察。本文通过一系列实战案例,深入解析COUNT()SUM()AVG()MAX()MIN()GROUP_CONCAT()等常用聚合函数,以及如何结合GROUP BYHAVING等子句,实现复杂的数据聚合任务。

一、案例背景

假设我们有一个销售数据表sales_data,包含以下字段:

  • order_id:订单ID
  • product_name:产品名称
  • quantity:销售数量
  • price:单价
  • sale_date:销售日期
  • category:产品类别

二、基本聚合函数应用

1. 统计总订单数

SELECT COUNT(order_id) AS total_orders
FROM sales_data;

2. 计算总销售额

SELECT SUM(quantity * price) AS total_sales
FROM sales_data;

3. 计算平均单价

SELECT AVG(price) AS average_price
FROM sales_data;

4. 查找最高单价商品

SELECT MAX(price) AS max_price
FROM sales_data;

5. 查找最低单价商品

SELECT MIN(price) AS min_price
FROM sales_data;

三、GROUP BY与聚合函数的结合

6. 按产品类别统计总销售额

SELECT category, SUM(quantity * price) AS category_sales
FROM sales_data
GROUP BY category;

7. 每月销售总额

SELECT DATE_FORMAT(sale_date, '%Y-%m') AS month, SUM(quantity * price) AS monthly_sales
FROM sales_data
GROUP BY month;

四、HAVING子句的使用

8. 查找销售额超过10000的类别

SELECT category, SUM(quantity * price) AS total_sales
FROM sales_data
GROUP BY category
HAVING total_sales > 10000;

五、GROUP_CONCAT()的高级应用

9. 汇总每个订单的商品列表

SELECT order_id, GROUP_CONCAT(product_name SEPARATOR ', ') AS products
FROM sales_data
GROUP BY order_id;

六、实战案例:分析特定时间段的销售情况

任务

分析2023年第一季度各月份的销售情况,包括:

  • 各月销售的总订单数
  • 各月的总销售额
  • 平均每月的销售数量
  • 销售额最高的产品类别

解决方案

-- 各月销售的总订单数
SELECT 
    DATE_FORMAT(sale_date, '%Y-%m') AS month, 
    COUNT(DISTINCT order_id) AS total_orders
FROM sales_data
WHERE sale_date BETWEEN '2023-01-01' AND '2023-03-31'
GROUP BY month;

-- 各月的总销售额
SELECT 
    DATE_FORMAT(sale_date, '%Y-%m') AS month, 
    SUM(quantity * price) AS total_sales
FROM sales_data
WHERE sale_date BETWEEN '2023-01-01' AND '2023-03-31'
GROUP BY month;

-- 平均每月的销售数量
SELECT 
    DATE_FORMAT(sale_date, '%Y-%m') AS month, 
    AVG(quantity) AS avg_quantity
FROM sales_data
WHERE sale_date BETWEEN '2023-01-01' AND '2023-03-31'
GROUP BY month;

-- 销售额最高的产品类别
SELECT 
    category, 
    SUM(quantity * price) AS total_sales
FROM sales_data
WHERE sale_date BETWEEN '2023-01-01' AND '2023-03-31'
GROUP BY category
ORDER BY total_sales DESC
LIMIT 1;
相关文章
|
3天前
|
存储 SQL 关系型数据库
深入解析MySQL事务机制和锁机制
深入解析MySQL事务机制和锁机制
|
8天前
|
安全 关系型数据库 MySQL
MySQL:TABLE_SCHEMA及其应用
MySQL:TABLE_SCHEMA及其应用
18 1
|
19天前
|
SQL 存储 关系型数据库
(五)MySQL索引应用篇:建立索引的正确姿势与使用索引的最佳指南!
在本篇中,则重点讲解索引应用相关的方式方法,例如各索引优劣分析、建立索引的原则、使用索引的指南以及索引失效与索引优化等内容。
|
3天前
|
存储 SQL 关系型数据库
探索MySQL的执行奥秘:从查询执行到数据存储与优化的深入解析
探索MySQL的执行奥秘:从查询执行到数据存储与优化的深入解析
|
7天前
|
存储 关系型数据库 MySQL
MySQL中的DISTINCT与GROUP BY:效率之争与实战应用
【8月更文挑战第12天】在数据库查询优化中,DISTINCT和GROUP BY常常被用来去重或聚合数据,但它们在实现方式和性能表现上却各有千秋。本文将深入探讨两者在MySQL中的效率差异,结合工作学习中的实际案例,为您呈现一场技术干货分享。
41 0
|
10天前
|
运维 关系型数据库 MySQL
"MySQL运维精髓:深入解析数据库及表的高效创建、管理、优化与备份恢复策略"
【8月更文挑战第9天】MySQL是最流行的开源数据库之一,其运维对数据安全与性能至关重要。本文通过最佳实践介绍数据库及表的创建、管理与优化,包括示例代码。涵盖创建/删除数据库、表结构定义/调整、索引优化和查询分析,以及数据备份与恢复等关键操作,助您高效管理MySQL,确保数据完整性和系统稳定运行。
25 0
|
10天前
|
安全 关系型数据库 MySQL
"深度解析:MySQL密码修改与远程登录配置全攻略,保障数据库安全与灵活访问"
【8月更文挑战第9天】MySQL是广受青睐的开源关系型数据库系统,其安全性和易用性对DBA和开发者至关重要。本文通过实例解析MySQL中用户密码更新及远程登录配置,确保数据库安全访问与高效管理。首先介绍如何分步修改密码,包括登录MySQL、选择数据库、使用`ALTER USER`命令更新密码,并刷新权限。接着,指导如何配置远程访问,涉及调整MySQL监听地址、授权用户远程登录、检查网络设置及测试远程连接。遵循这些步骤,可强化数据库安全性并实现灵活管理。
46 0
|
15天前
|
存储 NoSQL Redis
redis 6源码解析之 object
redis 6源码解析之 object
43 6
|
8天前
|
开发者 Python
深入解析Python `httpx`源码,探索现代HTTP客户端的秘密!
深入解析Python `httpx`源码,探索现代HTTP客户端的秘密!
31 1
|
8天前
|
开发者 Python
深入解析Python `requests`库源码,揭开HTTP请求的神秘面纱!
深入解析Python `requests`库源码,揭开HTTP请求的神秘面纱!
21 1

热门文章

最新文章

推荐镜像

更多