当前位置: 首页 > news >正文

网泰网站建设wordpress打开邮箱

网泰网站建设,wordpress打开邮箱,网络广告词,十大最好用虚拟机[TOC](SQL中累计求和与滑动求和函数sum() over()的用法) 一、窗口函数功能简介 sum(c) over(partition by a order by b) 按照一定规则汇总c的值,具体规则为以a分组,每组内按照b进行排序,汇总第一行至当前行的c的加和值。 sum()&#xff1a…

@[TOC](SQL中累计求和与滑动求和函数sum() over()的用法)

一、窗口函数功能简介

sum(c) over(partition by a order by b) 按照一定规则汇总c的值,具体规则为以a分组,每组内按照b进行排序,汇总第一行至当前行的c的加和值。

  • sum():对某个字段求和。

  • over():开窗,按照某种规则,将数据分组、分窗口计算。

  • sum() over() :对所有行进行求和。

  • sum() over(order by) :按照order by对应字段的顺序,进行累计求和,即第一行到当前行,默认order by 是升序排序(asc),也可以通过指定降序排序(desc)。

二、三种用法

sum()函数的升级用法,开窗函数(也叫分析函数)sum() over()一般有三种用法:

  1. 分组求和

  2. 累计求和

  3. 滑动求和

三、使用案例

我们以一个案例分别看下三种求和场景的SQL代码写法:

数据样本

我们的数据样本为一个名叫dws_js_team_gmv的底表,字段依次为team_name(销售团队)、month(月份)、gmv(成交额)

在这里插入图片描述

三种求和场景的SQL代码写法

  1. 题目:请统计各销售团队年累计成交额,及各销售团队各月成交额对累计成交的贡献占比

解题思路:只是分组求和的话sum()就能实现,按题目要求,需要实现分组求和的同时又保留目前的数据行数,因此考虑在查取已有字段的基础上增加分组求和值

SQL逻辑:

SELECT team_name --团队
,month --统计月份
,gmv --当月成交额
--对gmv按照team_name分组求和,相当于小组gmv的小计
,SUM(gmv) OVER(partition by team_name) AS pay_amt --销售组累计成交额
,gmv/SUM(gmv) OVER(partition by team_name) gmv_rate --该月成交额占比
FROM dws_js_team_gmv
GROUP BY team_name--如果只是求单独的各销售团队成交额,那用sum()就能实现,以上需求和分组求和的差异是既要分组求和还需要保留分月数据
SELECT team_name,SUM(gmv) AS pay_amt
FROM dws_js_team_gmv
GROUP BY team_name

SQL跑数结果:

在这里插入图片描述

  1. 题目:请统计各销售团队在各月的累计业绩值,开始时间从1月算

解题思路:只是分组求和的话sum()就能实现,按题目要求,需要实现分组求和的同时又保留目前的数据行数,因此考虑在查取已有字段的基础上增加分组求和值

SQL逻辑:

SELECT team_name --团队
,month --统计月份
,gmv --当月成交额
--对gmv按照team_name分组,再按month累计求和,order by 默认是升序排序,需要降序末尾加DESC
,SUM(gmv) OVER(partition by team_name order by month) AS pay_amt --销售组累计成交额
FROM dws_js_team_gmv
GROUP BY team_name--如果只是求单独的各销售团队成交额,那用sum()就能实现,以上需求和分组求和的差异是既要分组求和还需要保留分月数据
SELECT team_name,SUM(gmv) AS pay_amt
FROM dws_js_team_gmv
GROUP BY team_name

SQL跑数结果:

在这里插入图片描述

  1. 题目:请统计各销售团队在各月时的近3个月累计业绩(含统计月)。

  2. 题目:请统计各销售团队在各月时的近3个月累计业绩(不含统计月)。

  3. 题目:请统计各销售团队在各月及其之后2个月的累计业绩,如3月则统计3、4、5这三个月的成交额。

解题思路:以上三题共性是都要做分组且需要根据统计月份滑动求和,先对其做分组后的滑动求和,再调参设置滑动的范围,需要在over函数中使用range between and指定窗口的大小,向前使用preceding,向后使用following。如2 preceding and 1 following指定的窗口包括当前行、当前行前面两行以及当前行后面一行,总共4行。

SQL逻辑:

近3个月累计业绩(含统计月)值的滑动范围参数我们可以写成“range between 2 preceding and 0 following”或“range between 2 preceding and current row

SELECT team_name --团队
,month --统计月份
,gmv --当月成交额
--对gmv按照team_name分组求和,相当于小组gmv的小计
,SUM(gmv) OVER(partition by team_name order by month range between 2 preceding and 0 following) AS pay_amt --销售组累计成交额
FROM dws_js_team_gmv
GROUP BY team_name--如果只是求单独的各销售团队成交额,那用sum()就能实现,以上需求和分组求和的差异是既要分组求和还需要保留分月数据
SELECT team_name,SUM(gmv) AS pay_amt
FROM dws_js_team_gmv
GROUP BY team_name

如果希望滑动求和不包含统计月的值,有三种实现思路:

①用近4个月的滑动求和(含统计月)- 统计月的值;

②将滑动区间参数配置成“range between 3 preceding and 1 preceding

③将滑动区间参数配置成“range between 3 preceding and -1 following


参考连接:
https://zhuanlan.zhihu.com/p/626512180
https://blog.csdn.net/lxp90/article/details/142814074
https://blog.csdn.net/weixin_43658805/article/details/133879642

http://www.dtcms.com/a/433455.html

相关文章:

  • 潍坊网站开发公司班级网站首页怎么做
  • 做暧暧视频免费网站章丘网站优化
  • 专做化妆品的网站港南网站建设
  • 古典水墨网站遇到钓鱼网站怎么做
  • 深圳专业专业网站设计公司一般网站服务器
  • vi设计公司 焕识湖南关键词优化推荐
  • 网站建设word文档嵌入式软件开发工程师培训
  • 济南网站制作培训班成都市网站建
  • 网站设计属于什么经营范围多用户商城系统的效果
  • 郑州市建网站不得不知道网站
  • Tailwind预定义样式类(框架内置)(文本样式类、布局与间距类(弹性布局、网格布局)、颜色类、响应式设计类)任意值(Arbitrary Values)功能
  • 江西网站建设网络公司莱芜一中贴吧
  • 阿里巴巴网站备案网络公司是什么公司
  • 建设银行深圳天健世纪支行网站如何做宣传推广营销
  • 优化推广网站淄博seo在线网站推广
  • 东莞网站建设企业专门做dnf补丁的网站
  • iis搭建本地网站wordpress侧边栏导航代码
  • 怎么用wordpress 建站网线制作总结
  • 想系统学习wordpress沧州seo推广
  • 百度怎样收录到网站网站建设合同 英文范文
  • 网站做充值和提现大数据营销公司
  • 有了ddns怎么建设网站360搜索引擎地址
  • 网站排名优化外包价钱网站的flash
  • 西安买公司的网站建设刷神马网站优化排名
  • 做网站建设培训wordpress背景音乐插件
  • 建设旅游电子商务网站的目的wordpress博客网站多少钱
  • 坑梓网站建设如何百度认证号码平台
  • 深圳做网站公司有哪些企业深圳有几个燃气公司
  • 网站空间数据库地宝网招聘信息网
  • layui响应式网站开发教程wordpress主题模板视频网站