问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

mysql 按条件分组累计求和

发布网友 发布时间:2022-04-30 05:40

我来回答

2个回答

懂视网 时间:2022-04-30 10:01

SELECT
 a.empid,
 a.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 <= a.ordermonth
WHERE DATE_FORMAT(a.ordermonth,‘%Y‘)=‘2015‘ AND DATE_FORMAT(b.ordermonth,‘%Y‘)=‘2015‘
GROUP BY a.empid,a.ordermonth,a.qty
HAVING total<1000
ORDER 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 avg
FROM emporders a 
INNER JOIN emporders b
 ON a.empid=b.empid
 AND b.ordermonth <= a.ordermonth
WHERE DATE_FORMAT(a.ordermonth,‘%Y‘)=‘2015‘ AND DATE_FORMAT(b.ordermonth,‘%Y‘)=‘2015‘
GROUP BY a.empid,a.ordermonth,a.qty
HAVING total-a.qty < 1000
ORDER BY a.empid,a.ordermonth
运行结果如下 技术分享 如果只想返回达到累积订单数为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 avg
FROM emporders a 
INNER JOIN emporders b
 ON a.empid=b.empid
 AND b.ordermonth <= a.ordermonth
WHERE DATE_FORMAT(a.ordermonth,‘%Y‘)=‘2015‘ AND DATE_FORMAT(b.ordermonth,‘%Y‘)=‘2015‘
GROUP BY a.empid,a.ordermonth,a.qty
HAVING total-a.qty < 1000 AND total >= 1000
ORDER BY a.empid,a.ordermonth

运行结果如下

技术分享

mysql累积聚合

标签:

热心网友 时间:2022-04-30 07:09

select (select avg(sales) from 表名 b where (a.date-b.date) between 0 and 20) as [前20日平均销量],* from 表名 a
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...DE分别在BC AC上,且AE=CD,连接AD,BE交于点p 过B作BQ⊥AD Q为垂足... ...AC上的点,且AE=CD 连接AD BE 交于点P 作BQ垂 ...ac上的点,且ae=cd,连接ad、be交于点p作BQ⊥AD,垂足为Q,求证BP=2... ...AC上的点,且AE=CD,链接AD、BE交于点P,作BQ⊥AD ...AC上的点,且AE=CD,连结AD、BE交于点P,作BQ⊥AD,垂足为Q. ...刚刚大学毕业。由于生病,导致目前没有工作,大学四年的女友也因为我... 形容“荷花的特点”有什么词语 梦见比人还高大的石头蛤蟆,杀人拆房子。我和其他人一起翘辫子了._百度... 梦见别人送我一条蛇,我却把他不小心放了.可是我用石头打了它一下... 作文 我生活在鼓励中 QQ上离线请留言是不是退出账号了? QQ离线请留言,是不是隐身了,还是退出QQ了? 怎么画好人物的腿部和手指的各种动作啊(漫画) 漫画里人物的腿怎么画得秀气? 动漫人物腿的话怎么画啊xxx还有构图什么的话xxx比例总是掌握不好尤其是小腿根本画不出来 umm就 请问怎样画漫画人物的腿部? 怎么画动漫人物的二郎腿动作 无脊椎动物可份为那八类 微信聊天记录被已经手动删除了,有什么办法能恢复吗? 有脊椎和无脊椎动物分为哪几类 求专业大神帮我看看是洗盘还是出货 脊椎动物和无脊椎动物包括哪些种类的动物 无脊椎动物主要有几个类群,其中什么是最低等的动物? 无脊椎动物可以分为哪几类? 无脊椎动物分为哪几类 无脊椎动物有哪六种? 玩红包被封了,怎么解封啊?被封了一个月,求解 无脊椎动物有哪些种类 公司注册一年可以进行名称变更吗? oppo手机程序加密密码忘记怎么解 QQ对方显示离线请留言,发视频等待对方接听是隐身着,还是退出QQ没有登陆_百度问一问 鸭货怎么做好吃窍门 周黑鸭吃了完全停不下来,如何在家制作同款鸭货? 鸭货怎么卤制? 鸭货怎么做 怎样退出了QQ才会显示离线而不是离线请留言 老公最爱的鸭货,自己在家怎么做健康又好吃呢? 鸭货是怎么卤制的? 熟食鸭货配方 鸭货的做法 招商信用卡逾期五天还能还最低款吗? 我招商银行信用卡逾期5天 知道后马上还了最低 对我个人征信有影响吗 信用卡逾期了还能还款最低额度吗 信用卡被通知逾期后还还最低还款可以吗 求助啊!!!信用卡逾期一天了 第二天可以还最低还款额吗!! 工商银行信用卡逾期11天之后还可以还最低还款额吗 一辆家用直升机多少钱 qq好友撤回消息后一直提示怎么办 手机QQ里总在最前端显示对方撤回一条信息,然后所有的聊天记录都没有了,如何彻底删除这句话呢? 二年级下册植树节手抄报怎么画