返回顶部
首页 > 资讯 > 数据库 >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://lsjlt.com/news/56263.html(转载时请注明来源链接)

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

猜你喜欢
  • MySQL数据库中累积聚合的原理是什么
    MySQL数据库中累积聚合的原理是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。累积聚会累积聚合为聚合从序列内第一个元素到...
    99+
    2024-04-02
  • mysql累积聚合原理与用法实例分析
    本文实例讲述了mysql累积聚合原理与用法。分享给大家供大家参考,具体如下: 累积聚合为聚合从序列内第一个元素到当前元素的数据,如为每个员工返回每月开始到现在累积的订单数量和平均订单数量 行号问题有两个解决...
    99+
    2024-04-02
  • mysql中连续聚合的原理是什么
    今天就跟大家聊聊有关mysql中连续聚合的原理是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。连续聚合是按时间顺序对有序数据进行聚合的操作。在下...
    99+
    2024-04-02
  • MYSQL数据库中Join的操作原理是什么
    今天就跟大家聊聊有关MYSQL数据库中Join的操作原理是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Join使用的是Nested-Loop Join算法,Nested-Loo...
    99+
    2023-06-20
  • mysql笛卡尔积的原理是什么
    MySQL笛卡尔积是指在没有任何连接条件的情况下,将两个表的每一行都与另一个表的每一行进行组合,生成一个新的结果集。这种操作会导致结...
    99+
    2024-04-09
    mysql
  • MySQL数据库:聚合函数的使用
    聚合函数 max() 最大值 min() 最小值 avg() 平均值 sum() 求和 count() 符合条件数据的数目 聚合函数不能嵌套使用 # 在统计时字段内没有满足条件的数值只有count返回数值0或者其他,而其余四个聚合函数返回n...
    99+
    2021-09-13
    MySQL数据库:聚合函数的使用
  • MySQL数据库缓存原理是什么
    今天就跟大家聊聊有关MySQL数据库缓存原理是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。  MySQL数据库查询步骤有哪些  当MySQL收...
    99+
    2024-04-02
  • Mysql数据库group by原理是什么
    这篇文章主要介绍“Mysql数据库group by原理是什么”,在日常操作中,相信很多人在Mysql数据库group by原理是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Mysql...
    99+
    2023-07-02
  • mysql数据库底层原理是什么
    这篇“mysql数据库底层原理是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“mysq...
    99+
    2023-04-22
    mysql
  • MySQL聚合函数的原理及作用
    下文我给大家简单讲讲关于MySQL聚合函数的原理及作用,大家之前了解过相关类似主题内容吗?感兴趣的话就一起来看看这篇文章吧,相信看完MySQL聚合函数的原理及作用对大家多少有点帮助吧。 以下是我们...
    99+
    2024-04-02
  • MySQL数据库中逻辑架构的原理是什么
    MySQL数据库中逻辑架构的原理是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、笼统的逻辑架构先给出一张逻辑架构图,这...
    99+
    2024-04-02
  • mysql数据库中索引的底层原理是什么
    本篇文章为大家展示了mysql数据库中索引的底层原理是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。下面,我们举例来说明一下聚集索引和非聚集索引的区别:其实,我...
    99+
    2024-04-02
  • MySQL数据库的原理及优点是什么
    MySQL数据库的原理及优点是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。MySQL数据库简称MySQL,是一款由瑞典MySQLAB公司...
    99+
    2024-04-02
  • 什么是SQLServer中的聚合函数
    在SQLServer中,聚合函数是用于对数据进行聚合计算的函数。常用的聚合函数有: SUM:对指定列的值求和。 AVG:对指定列的...
    99+
    2024-04-09
    SQLServer
  • sql中聚合函数是什么
    sql 中的聚合函数是对一组行执行计算并返回单个值的函数,用于汇总和聚合数据,提取有意义的见解,包括 count()、sum()、avg()、max() 和 min()。它们通过计算所有...
    99+
    2024-05-07
    聚合函数
  • MySQL中InnoDB数据页的原理是什么
    MySQL中InnoDB数据页的原理是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。不同类型的页简介它是InnoDB管理存储空间的基本单位...
    99+
    2024-04-02
  • mysql中聚簇索引的页分裂原理是什么
    这篇文章给大家介绍mysql中聚簇索引的页分裂原理是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。聚簇结构的特点:根据主键查询条目时,不用回行(数据就在主键节点下)如果碰到不规则数...
    99+
    2024-04-02
  • SQL Server中的聚合函数是什么
    小编给大家分享一下SQL Server中的聚合函数是什么,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!SQL Server中的聚合函数有:1、AVG;2、COUNT;3、MAX;4、SUM...
    99+
    2024-04-02
  • MySQL数据库中访问控制的实现原理是什么
    本篇文章为大家展示了MySQL数据库中访问控制的实现原理是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。MySQL 访问控制实际上由两个功能模块共同组成,一个是...
    99+
    2024-04-02
  • 数据库的工作原理是什么
    数据库的工作原理是指数据库系统如何存储、管理和使用数据的方式和机制。一般来说,数据库的工作原理主要包括以下几个方面:1. 数据的存储...
    99+
    2023-09-14
    数据库
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作