MySQL 技巧:巧用窗口函数计算累计值

简介: MySQL 技巧:巧用窗口函数计算累计值

MySQL 技巧:巧用窗口函数计算累计值

在日常开发中,经常遇到需要计算累计销售额、排名或同比数据的场景。传统做法依赖子查询或变量,复杂且易错。MySQL 8.0 引入的窗口函数可以优雅解决这类问题。

场景:按月统计订单总额及累计总额

假设有订单表 orders,字段:order_dateamount。需要输出每月总额及截止当月的累计总额。

SELECT 
    DATE_FORMAT(order_date, '%Y-%m') AS month,
    SUM(amount) AS monthly_total,
    SUM(SUM(amount)) OVER (ORDER BY DATE_FORMAT(order_date, '%Y-%m')) AS cumulative_total
FROM orders
GROUP BY month
ORDER BY month;

核心技巧SUM(SUM(amount)) OVER (...)

  • 内层 SUM(amount) 按月聚合得到月度总额。
  • 外层 SUM(...) OVER 对聚合结果开窗,按月份顺序累加,轻松获得累计值。

更多窗口函数应用

  • 排名ROW_NUMBER()RANK() 去重排序。
  • 环比LAG(amount, 1) 获取上月值,直接计算增长率。

窗口函数让复杂统计变得简洁高效,建议升级到 MySQL 8.0 后重点掌握。

相关实践学习
函数计算部署PuLID for FLUX人像写真实现智能换颜效果
只需一张图片,生成程序员专属写真!本次实验在函数计算中内置PuLID for FLUX,您可以通过函数计算+Serverless应用中心一键部署Flux模型,快速体验超写实图像生成的魅力。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
相关文章
|
20天前
|
SQL 关系型数据库 MySQL
5个提升MySQL查询效率的实用技巧
5个提升MySQL查询效率的实用技巧
|
20天前
|
开发者 Python
Python 中鲜为人知的 `else` 子句:不止用于条件判断
Python 中鲜为人知的 `else` 子句:不止用于条件判断
243 150
|
20天前
|
Python
3个让你爱不释手的Python冷门技巧
3个让你爱不释手的Python冷门技巧
299 146
|
20天前
|
安全 PHP 数据安全/隐私保护
PHP 技巧:5 个让你编码更高效的实用函数
PHP 技巧:5 个让你编码更高效的实用函数
208 143
|
20天前
|
SQL 移动开发 关系型数据库
MySQL技巧:利用窗口函数高效去重,告别嵌套子查询
MySQL技巧:利用窗口函数高效去重,告别嵌套子查询
|
20天前
|
安全 PHP
PHP 技巧:5 个让代码更优雅的实用方法
PHP 技巧:5 个让代码更优雅的实用方法
282 140
|
20天前
|
索引 Python
5个让你代码更优雅的Python技巧
5个让你代码更优雅的Python技巧
222 143
|
20天前
|
索引 Python
5个让你爱不释手的Python实用技巧
5个让你爱不释手的Python实用技巧
214 146
|
20天前
|
Python
5个让你爱不释手的Python冷门技巧
5个让你爱不释手的Python冷门技巧
294 144
|
12天前
|
数据采集 人工智能 搜索推荐
别再把AI当搜索引擎用了!3个提示词技巧,让你的工作效率翻倍
别再把AI当搜索引擎用了!3个提示词技巧,让你的工作效率翻倍
278 148

热门文章

最新文章

下一篇
开通oss服务