iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >mysql中滑动聚合的示例分析
  • 684
分享到

mysql中滑动聚合的示例分析

2024-04-02 19:04:59 684人浏览 泡泡鱼
摘要

这篇文章主要为大家展示了“Mysql中滑动聚合的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“mysql中滑动聚合的示例分析”这篇文章吧。滑动聚合是按顺

这篇文章主要为大家展示了“Mysql中滑动聚合的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“mysql中滑动聚合的示例分析”这篇文章吧。

滑动聚合是按顺序对滑动窗口范围内的数据进行聚合的操作。下累积聚合不同,滑动聚合并不是统计开始计算的位置到当前位置的数据。

这里以统计最近三个月中员工第月订单情况为例来介绍滑动聚合。

滑动聚合和累积聚合解决方案的主要区别在于连接的条件不同。滑动聚合条件不再是b.ordermonth <= a.ordermonth,而应该是b.ordermonth大于前三个月的月份,并且小于当前月份。因此滑动聚合的解决方案的sql语句如下

SELECT
 a.empid,
 DATE_FORMAT(a.ordermonth, '%Y-%m') AS ordermonth,
 a.Qty AS thismonth,
 SUM(b.qty) AS total,
 CAST(AVG(b.qty) AS DECIMAL(5,2)) AS avg
FROM emporders a
INNER JOIN emporders b
 ON a.empid=b.empid
 AND b.ordermonth > DATE_ADD(a.ordermonth, INTERVAL -3 MONTH)
 AND b.ordermonth <= a.ordermonth
WHERE DATE_FORMAT(a.ordermonth,'%Y')='2015' AND DATE_FORMAT(b.ordermonth,'%Y')='2015'
GROUP BY a.empid,DATE_FORMAT(a.ordermonth, '%Y-%m'),a.qty
ORDER BY a.empid,a.ordermonth

运行结果如下

mysql中滑动聚合的示例分析

该解决方案返回的是三个月为一个周期的滑动聚合,但是每个用户包含前两个月并且未满3个月的聚合。如果只希望返回满3个月的聚合,不返回未满3个月的聚合,可以使用HAVING过滤器进行过滤,过滤的条件为MIN(b.ordermonth)=DATE_ADD(a.ordermonth, INTERVAL -2 MONTH),例如

SELECT
 a.empid,
 a.ordermonth AS ordermonth,
 a.qty AS thismonth,
 SUM(b.qty) AS total,
 CAST(AVG(b.qty) AS DECIMAL(5,2)) AS avg
FROM emporders a
INNER JOIN emporders b
 ON a.empid=b.empid
 AND b.ordermonth > DATE_ADD(a.ordermonth, INTERVAL -3 MONTH)
 AND b.ordermonth <= a.ordermonth
WHERE DATE_FORMAT(a.ordermonth,'%Y')='2015' AND DATE_FORMAT(b.ordermonth,'%Y')='2015' AND a.empid=1
GROUP BY a.empid,DATE_FORMAT(a.ordermonth, '%Y-%m'),a.qty
HAVING MIN(b.ordermonth)=DATE_ADD(a.ordermonth, INTERVAL-2 MONTH)
ORDER BY a.empid,a.ordermonth

运行结果如下

mysql中滑动聚合的示例分析

年初至今聚合和滑动聚合类似,不同的地方仅在于统计的仅为当前一年的聚合。唯一的区别体现在下限的开始位置上。在年初至今的问题中,下限为该年的第一天,而滑动聚合的下限为N个月的第一天。因此,年初至今的问题的解决方案如下图所示,得到的结果

SELECT
 a.empid,
 DATE_FORMAT(a.ordermonth, '%Y-%m') AS ordermonth,
 a.qty AS thismonth,
 SUM(b.qty) AS total,
 CAST(AVG(b.qty) AS DECIMAL(5,2)) AS avg
FROM emporders a
INNER JOIN emporders b
  ON a.empid=b.empid
  AND b.ordermonth >= DATE_FORMAT(a.ordermonth, '%Y-01-01')
  AND b.ordermonth <= a.ordermonth
  AND DATE_FORMAT(b.ordermonth,'%Y')='2015'
GROUP BY a.empid,a.ordermonth,a.qty
ORDER BY a.empid,a.ordermonth

运行结果如下

mysql中滑动聚合的示例分析

以上是“mysql中滑动聚合的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网数据库频道!

您可能感兴趣的文档:

--结束END--

本文标题: mysql中滑动聚合的示例分析

本文链接: https://www.lsjlt.com/news/57664.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql中滑动聚合的示例分析
    这篇文章主要为大家展示了“mysql中滑动聚合的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“mysql中滑动聚合的示例分析”这篇文章吧。滑动聚合是按顺...
    99+
    2024-04-02
  • mongodb中聚合的示例分析
    这篇文章主要介绍了mongodb中聚合的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一:聚合常见的聚合操作跟sql server一...
    99+
    2024-04-02
  • MySQL聚合查询与联合查询操作的示例分析
    这篇文章主要为大家展示了“MySQL聚合查询与联合查询操作的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL聚合查询与联合查询操作的示例分析”这篇文章吧。一. 聚合查询1.聚合函...
    99+
    2023-06-29
  • AndroidView滑动的实现分析示例
    目录1.layout方法2.offsetLeftAndRight()与offsetTopAndBottom()3.LayoutParams(改变布局参数)4.scrollT...
    99+
    2022-11-13
    Android View滑动 Android View的移动
  • MySQL中sql_mode合理设置的示例分析
    这篇文章主要介绍了MySQL中sql_mode合理设置的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。MySQL的sql_mode合...
    99+
    2024-04-02
  • MySQL联合查询的示例分析
    这篇文章给大家分享的是有关MySQL联合查询的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。笛卡尔积笛卡尔乘积是指在数学中,两个集合X和Y的笛卡尔积(Cartesian ...
    99+
    2024-04-02
  • Maven的继承与聚合实例分析
    这篇文章主要介绍“Maven的继承与聚合实例分析”,在日常操作中,相信很多人在Maven的继承与聚合实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Maven的继承与聚合实例分析”的疑惑有所帮助!接下来...
    99+
    2023-07-02
  • Vue插件之滑动验证码的示例分析
    小编给大家分享一下Vue插件之滑动验证码的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!预览目前仅前端实现,支持移动端滑...
    99+
    2024-04-02
  • mysql累积聚合原理与用法实例分析
    本文实例讲述了mysql累积聚合原理与用法。分享给大家供大家参考,具体如下: 累积聚合为聚合从序列内第一个元素到当前元素的数据,如为每个员工返回每月开始到现在累积的订单数量和平均订单数量 行号问题有两个解决...
    99+
    2024-04-02
  • python中集合的示例分析
    这篇文章主要介绍python中集合的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、集合的基本信息集合:集合是无序的,集合中的元素是唯一的,集合一般用于元组或者列表中的元素去重。格式:set1 = set(...
    99+
    2023-06-15
  • Java中集合的示例分析
    小编给大家分享一下Java中集合的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!java集合java集合类存放于java.util包中,是一个用来存放对象...
    99+
    2023-06-20
  • Python破解极验滑动验证码的示例分析
    这篇文章将为大家详细讲解有关Python破解极验滑动验证码的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。极验滑动验证码以上图片是最典型的要属于极验滑动认证了,极验官网:http://www.ge...
    99+
    2023-06-15
  • vue移动UI框架滑动加载数据的示例分析
    小编给大家分享一下vue移动UI框架滑动加载数据的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!效果展示先上一个gif图...
    99+
    2024-04-02
  • MYSQL中Profile的示例分析
    这篇文章主要介绍MYSQL中Profile的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!MYSQL--Profile分析在分析一条SQL语句的时候,发现在SQL语句的末尾或...
    99+
    2024-04-02
  • mysql中between的示例分析
    这篇文章将为大家详细讲解有关mysql中between的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。mysql between的边界范围between 的范围是包含两边的边界值eg: id be...
    99+
    2023-06-15
  • mysql中MVVC的示例分析
    这篇文章将为大家详细讲解有关mysql中MVVC的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。mysql中MVVC的示例分析1、作用放弃简单地行级锁,可视为行级锁的变种,提升并发性能。在很多情况...
    99+
    2023-06-15
  • MySQL中binlog的示例分析
    这篇文章主要介绍MySQL中binlog的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、binlog简介binlog即binary log,二进制日志文件。它记录了数据库所有执行的DDL和DML语句(除了...
    99+
    2023-06-15
  • MySQL中Mysqld_multi的示例分析
    这篇文章将为大家详细讲解有关MySQL中Mysqld_multi的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Mysqld_multi多实例  &nb...
    99+
    2024-04-02
  • Mysql索引结合explain分析示例
    目录简介1.索引分类聚簇索引为什么选择B+树explain简介 Mysql 在我们项目中使用是非常广的,当我们数据量大的时候,就需要考虑建立索引了,我感觉这也是一种以空间换时间的方式...
    99+
    2024-04-02
  • ES6中集合set的示例分析
    这篇文章给大家分享的是有关ES6中集合set的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。集合set新的数据结构Set(集合),它类似于数组,成员的值都是唯一的,集合实...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作