实例

  • 1.按照网别计算近三月累计/平均缴费人数
  • 2.流量溢出情况人数占比

1.按照网别计算近三月累计/平均缴费人数


select net_type 网别
,pay_date_first_zy 缴费时间
,count(1) 人数
,sum(count(1)) over(PARTITION BY net_type ORDER BY pay_date_first_zy ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) 近三月累计缴费人数
,round(avg(count(1)) over(PARTITION BY net_type ORDER BY pay_date_first_zy   ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING),1) 近三月平均缴费人数
FROM anrpt.rpt_label_info
GROUP BY net_type,pay_date_first_zy
ORDER BY net_type,pay_date_first_zy

结果如下:
可见当观察账期为201910时,201910没有上月值,所以用201910人数+201911人数=累计缴费人数,3+1 = 4。
当观察账期为201911时,用201910+201911+201911人数=累计缴费人数,3+1+3 = 7。

2.流量溢出情况人数占比

select gprs_more_type 流量溢出频率
,row_number() over(order by count(1) DESC) 人数排名
,count(1) 人数
,sum(count(1)) over(ORDER BY count(1) ROWS BETWEEN unbounded preceding AND current row) sum1 -- 指第一行至当前行的汇总
,sum(count(1)) over(ORDER BY count(1) ROWS BETWEEN current row AND unbounded following) sum2 -- 指当前行到最后一行的汇总
,sum(count(1)) over(ORDER BY count(1) ROWS BETWEEN 1 preceding AND current row) sum3 -- 指当前行的上一行(rownum-1)到当前行的汇总
,sum(count(1)) over(ORDER BY count(1) ROWS BETWEEN 1 preceding AND 1 following) sum4 -- 指当前行的上一行(rownum-1)到当前行的下辆行(rownum+2)的汇总
,sum(count(1)) over(order by count(1) rows between unbounded preceding and unbounded following) sum5 -- 每行对应的数据窗口是从第一行到最后一行
FROM anrpt.rpt_label_info
GROUP BY gprs_more_type
ORDER BY 人数排名 desc

结果如下:
求人数占比直接用人数/sum5就可以了。
这里列出了多种分组求和方式,当然如果维度多个可以在over里面加PARTITION BY,除了求和也可以用max、min等其他聚合函数。

上一篇:【gp数据库】你可能不知道却超级实用的函数

【gp数据库】统计常用窗口函数详解相关推荐

  1. MySQL/Hive 常用窗口函数详解及相关面试题

    目录 一.窗口函数概述: 1.窗口函数的分类 2.窗口函数与普通聚合函数的区别: 二.窗口函数的基本用法 1.基本语法 2.设置窗口的方法 1)window_name 2) partition by ...

  2. MySQL数据库增删改查常用语句详解

    MySQL数据库增删改查常用语句详解 一 MySQL数据库表结构 1.1 常见数据类型 1.2 常用约束类型 1.3 MySQL存储引擎 二 DDL语句:数据定义语句 2.1 修改数据库密码 2.1. ...

  3. Linux常用命令详解文库

     Linux常用命令详解文库.txt精神失常的疯子不可怕,可怕的是精神正常的疯子!Linux常用命令详解 来源: LUPA开源社区 发布时间: 2007-05-27 05:34 版权申明 字体: ...

  4. Linux常用命令详解(最全)

    Linux命令目录 Linux命令集合 系统信息 关机 (系统的关机.重启以及登出 ) 文件和目录 文件搜索 挂载一个文件系统 磁盘空间 用户和群组 文件的权限 - 使用 "+" ...

  5. php mysql source_Mysql数据库导入命令Source详解

    Mysql数据库导入命令Source详解 几个常用用例: 1.导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名mysqldump -u root -p data ...

  6. Samtools(CentOS Linux)安装及常用命令详解

    序列比对(将测序reads与已知序列信息的基因或基因组进行比对)是高通量测序数据分析中最重要的一环,无论是转录组还是重测序都是基于比对结果来进行后续各项分析的,比对结果格式比较常见的是sam和bam文 ...

  7. SQL Server 2005 常用数据类型详解

    SQL Server 2005 常用数据类型详解 [b]1. 字符串数据类型[/b] char 此数据类型可存储1~8000个定长字符串,字符串长度在创建时指定:如未指定,默认为char(1).每个字 ...

  8. Django从理论到实战(part28)--ORM常用Field详解

    学习笔记,仅供参考 参考自:Django打造大型企业官网–Huang Y: ORM常用Field详解 AutoField 映射到数据库中是int类型,可以有自动增长的特性.一般不需要使用这个类型,如果 ...

  9. Linux常用命令详解(两万字超长文)

    Linux常用命令详解 作为一枚程序员,熟练掌握一些常见的linux命令是很有必要的,掌握这些命令能帮助我们更好地管理Linux系统,提高工作效率,并有效地解决各种问题,为了方便自己后续查阅以及帮助不 ...

  10. Discuz3.数据库数据表字典详解(完整版)

    Discuz3.数据库数据表字典详解(完整版) 转自:https://discuzt.cr180.com/discuzcode-db.html pre_common_admincp_cmenu后台菜单 ...

最新文章

  1. Go 学习笔记(21)— 标准库 os 操作文件(新建、打开、写入、读取、删除、关闭文件)
  2. etcd — 操作手册
  3. ASP.NET上传文件对文件类型的高级判断
  4. C/C++ 输出整数带正负号
  5. android动态更改布局宽高,动态更改Android上的线性布局宽度或高度
  6. MySQL(10)数据库实现高可用架构之MHA
  7. java中FutureTask的使用
  8. SAP C4C Lead明细页面里Account字段的绑定路径
  9. C语言 函数指针 int(*ptr)(int,int)
  10. java 1.8stream_java jdk1.8 使用stream流进行list 分组归类操作
  11. while 循环判断时 遇到赋值表达式
  12. 【编程珠玑】第四章 编写正确的程序
  13. 5G 已来,是否意味着 4G 淘汰?
  14. it'll be much more productive to read pdf files via a touch screen
  15. alsa mixer编程
  16. nxp EIQ无法使用脚本导入数据集:ssl.SSLCertVerificationError
  17. veu2x 消息订阅与发送
  18. 在 FlashGot 中调用 Axel 下载
  19. 阿里云ECS服务器很多台共用一个公网ip吗?
  20. 阿里云GPU计算型gn6i服务器配置性能好不好用?

热门文章

  1. QCC302X/QCC303X蓝牙对讲与蓝牙扩音器
  2. win7 安装ss
  3. 1stopt拟合步骤_1stopt快速公式拟合
  4. 火狐浏览器插件学习01
  5. 在vscode中新建html文件的两种方法
  6. bootstrap 页面垂直居中_bootstrap div垂直居中+水平居中保持响应式
  7. css 文本和div垂直居中方法汇总
  8. 开发工具之 Snipaste(超级截图工具)
  9. css中的单位换算_GitHub - WangQiangrong/cssUnitTransform: css单位转换工具
  10. java-pdf-itext7、itextpdf 生成pdf 文档 定制票据打印