广告
返回顶部
首页 > 资讯 > 数据库 >MySQL数据库中累积聚合的原理是什么
  • 933
分享到

MySQL数据库中累积聚合的原理是什么

2024-04-02 19:04:59 933人浏览 独家记忆
摘要

Mysql数据库中累积聚合的原理是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。累积聚会累积聚合为聚合从序列内第一个元素到

Mysql数据库中累积聚合的原理是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

累积聚会

累积聚合为聚合从序列内第一个元素到当前元素的数据,如为每个员工返回每月开始到现在累积的订单数量和平均订单数量。

行号问题有两个解决方案,分别是为使用子查询和使用连接。子查询的方法通常比较直观,可读性强。但是在要求进行聚合时,子查询需要为每个聚合扫描一次数据,而连接方法通常只需要扫描一次就可以得到结果。

下面的查询使用连接来得到结果

SELECTa.empid,a.ordermonth,a.Qty AS thismonth,SUM(b.qty) AS total,CAST(AVG(b.qty) AS DECIMAL(5,2)) AS avgFROM emporders a  INNER JOIN emporders bON a.empid=b.empidAND b.ordermonth <= a.ordermonth  GROUP BY a.empid,a.ordermonth,a.qtyORDER BY a.empid,a.ordermonth

如果只是查询2015年的累积订单,可以加上以where条件

WHERE DATE_FORMAT(a.ordermonth,'%Y')='2015' AND DATE_FORMAT(b.ordermonth,'%Y')='2015'

运行结果如下

MySQL数据库中累积聚合的原理是什么

此外可能还需要筛选数据,例如只需要返回每个员工到达某一目标之前每月订单的情况。这里假设统计每个员工的合计订单数量达到1000之前的累积情况。

这里可以使用HAVING过滤器来完成查询

SELECT a.empid, a.ordermonth,a.qty AS thismonth, SUM(b.qty) AS total, CAST(AVG(b.qty) AS DECIMAL(5,2)) AS avgFROM emporders aiNNER JOIN emporders b  ON a.empid=b.empid  AND b.ordermonth <= a.ordermonthWHERE DATE_FORMAT(a.ordermonth,'%Y')='2015' AND DATE_FORMAT(b.ordermonth,'%Y')='2015'GROUP BY a.empid,a.ordermonth,a.qtyHAVING total<1000ORDER BY a.empid,a.ordermonth

这里并没有统计到达到1000时该月的情况,如果要进行统计,则情况又有点复杂。如果指定了total <=  1000,则只有该月订单数量正好为1000才进行统计,否则不会对该月进行统计。因此这个问题的过滤,可以从另外一个方面来考虑。当累积累积订单小于1000时,累积订单与上个月的订单之差是小于1000的,同时也能对第一个订单数量超过1000的月份进行统计。故该解决方案的sql语句如下

SELECT a.empid, a.ordermonth,a.qty AS thismonth, SUM(b.qty) AS total, CAST(AVG(b.qty) AS DECIMAL(5,2)) AS avgFROM emporders aINNER JOIN emporders b  ON a.empid=b.empid  AND b.ordermonth <= a.ordermonthWHERE DATE_FORMAT(a.ordermonth,'%Y')='2015' AND DATE_FORMAT(b.ordermonth,'%Y')='2015'GROUP BY a.empid,a.ordermonth,a.qtyHAVING total-a.qty < 1000ORDER BY a.empid,a.ordermonth

运行结果如下

MySQL数据库中累积聚合的原理是什么

如果只想返回达到累积订单数为1000的当月数据,不返回之前的月份,则可以对上述SQL语句

进一步过滤,再添加累积订单数量大于等于1000的条件。该问题的SQL语句如下,

SELECT a.empid, a.ordermonth,a.qty AS thismonth, SUM(b.qty) AS total, CAST(AVG(b.qty) AS DECIMAL(5,2)) AS avgFROM emporders aINNER JOIN emporders b  ON a.empid=b.empid  AND b.ordermonth <= a.ordermonthWHERE DATE_FORMAT(a.ordermonth,'%Y')='2015' AND DATE_FORMAT(b.ordermonth,'%Y')='2015'GROUP BY a.empid,a.ordermonth,a.qtyHAVING total-a.qty < 1000 AND total >= 1000ORDER BY a.empid,a.ordermonth

运行结果如下

MySQL数据库中累积聚合的原理是什么

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网数据库频道,感谢您对编程网的支持。

您可能感兴趣的文档:

--结束END--

本文标题: MySQL数据库中累积聚合的原理是什么

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

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

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

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

下载Word文档
猜你喜欢
  • MySQL数据库中累积聚合的原理是什么
    MySQL数据库中累积聚合的原理是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。累积聚会累积聚合为聚合从序列内第一个元素到...
    99+
    2022-10-18
  • mysql中连续聚合的原理是什么
    今天就跟大家聊聊有关mysql中连续聚合的原理是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。连续聚合是按时间顺序对有序数据进行聚合的操作。在下...
    99+
    2022-10-18
  • MYSQL数据库中Join的操作原理是什么
    今天就跟大家聊聊有关MYSQL数据库中Join的操作原理是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Join使用的是Nested-Loop Join算法,Nested-Loo...
    99+
    2023-06-20
  • MySQL数据库缓存原理是什么
    今天就跟大家聊聊有关MySQL数据库缓存原理是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。  MySQL数据库查询步骤有哪些  当MySQL收...
    99+
    2022-10-18
  • mysql数据库底层原理是什么
    这篇“mysql数据库底层原理是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“mysq...
    99+
    2023-04-22
    mysql
  • Mysql数据库group by原理是什么
    这篇文章主要介绍“Mysql数据库group by原理是什么”,在日常操作中,相信很多人在Mysql数据库group by原理是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Mysql...
    99+
    2023-07-02
  • MySQL数据库的原理及优点是什么
    MySQL数据库的原理及优点是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。MySQL数据库简称MySQL,是一款由瑞典MySQLAB公司...
    99+
    2022-10-19
  • MySQL数据库中逻辑架构的原理是什么
    MySQL数据库中逻辑架构的原理是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、笼统的逻辑架构先给出一张逻辑架构图,这...
    99+
    2022-10-18
  • mysql数据库中索引的底层原理是什么
    本篇文章为大家展示了mysql数据库中索引的底层原理是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。下面,我们举例来说明一下聚集索引和非聚集索引的区别:其实,我...
    99+
    2022-10-18
  • mysql中聚簇索引的页分裂原理是什么
    这篇文章给大家介绍mysql中聚簇索引的页分裂原理是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。聚簇结构的特点:根据主键查询条目时,不用回行(数据就在主键节点下)如果碰到不规则数...
    99+
    2022-10-18
  • MySQL中InnoDB数据页的原理是什么
    MySQL中InnoDB数据页的原理是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。不同类型的页简介它是InnoDB管理存储空间的基本单位...
    99+
    2022-10-19
  • MySQL数据库中访问控制的实现原理是什么
    本篇文章为大家展示了MySQL数据库中访问控制的实现原理是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。MySQL 访问控制实际上由两个功能模块共同组成,一个是...
    99+
    2022-10-18
  • MySQL数据库授权的原则是什么
    本篇内容介绍了“MySQL数据库授权的原则是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  服务器重...
    99+
    2022-10-18
  • 数据库的工作原理是什么
    数据库的工作原理是指数据库系统如何存储、管理和使用数据的方式和机制。一般来说,数据库的工作原理主要包括以下几个方面:1. 数据的存储...
    99+
    2023-09-14
    数据库
  • 数据库组合索引的选择原则是什么
    本篇内容主要讲解“数据库组合索引的选择原则是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“数据库组合索引的选择原则是什么”吧! 表上的索引是根据什么建立的...
    99+
    2022-10-19
  • Redis 数据库并发的原理是什么
    本篇文章为大家展示了Redis 数据库并发的原理是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、单线程模型Redis客户端对服务端的每次调用都经历了发送命令...
    99+
    2022-10-18
  • MySQL数据库事务原理及应用方法是什么
    这篇“MySQL数据库事务原理及应用方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇...
    99+
    2023-05-12
    mysql
  • MySQL数据库索引原理及优化策略是什么
    这篇文章主要介绍“MySQL数据库索引原理及优化策略是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MySQL数据库索引原理及优化策略是什么”文章能帮助大家解决...
    99+
    2023-05-12
    mysql
  • MySQL数据库索引的设计原则是什么
    本篇内容主要讲解“MySQL数据库索引的设计原则是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL数据库索引的设计原则是什么”吧!为了使索引的使用效...
    99+
    2022-10-18
  • 数据库事务的实现原理是什么
    本篇内容主要讲解“数据库事务的实现原理是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“数据库事务的实现原理是什么”吧!数据库的事务有四大特性:原子性、隔离性...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作