MTD:例:20160918求20160901-20160918的amount的sum(累加)
YTD: 例:20160918求20160101-20160918的amount的sum(累加)
YTM: 例:20160918求2016年1-9月的amount的sum(累加)
解决方法:使用hive的开窗函数
#原始表(100条数据)
+------------------+-------------------+--+
| date_orig.ddate  | date_orig.amount  |
+------------------+-------------------+--+
| 20160918         | 106               |
| 20180707         | 225               |
| 20181003         | 126               |
| 20161222         | 178               |
| 20170607         | 198               |
| 20181105         | 280               |
| 20170706         | 260               |
| 20180817         | 291               |
| 20180206         | 104               |
| 20181128         | 267               |
| 20170313         | 154               |
| 20170313         | 191               |
| 20180921         | 108               |
| 20170926         | 106               |
| 20171116         | 131               |
| 20170816         | 161               |
| 20180514         | 143               |
| 20160216         | 138               |
| 20170317         | 194               |
| 20160609         | 255               |
| 20170202         | 213               |
| 20180505         | 173               |
| 20160302         | 238               |
| 20180328         | 218               |
| 20180221         | 176               |
| 20181222         | 116               |
| 20180104         | 139               |
| 20170802         | 297               |
| 20160723         | 206               |
| 20160825         | 283               |
| 20181203         | 217               |
| 20180530         | 252               |
| 20171120         | 262               |
| 20160129         | 163               |
| 20160628         | 269               |
| 20161011         | 179               |
| 20170820         | 185               |
| 20160913         | 262               |
| 20171130         | 190               |
| 20170821         | 172               |
| 20160908         | 267               |
| 20161120         | 250               |
| 20180901         | 260               |
| 20181124         | 110               |
| 20161012         | 184               |
| 20180525         | 177               |
| 20181218         | 221               |
| 20161202         | 120               |
| 20181009         | 260               |
| 20160821         | 278               |
| 20170330         | 121               |
| 20160429         | 288               |
| 20170430         | 250               |
| 20161127         | 198               |
| 20160801         | 150               |
| 20180906         | 266               |
| 20160321         | 298               |
| 20180813         | 111               |
| 20170914         | 147               |
| 20160610         | 270               |
| 20170512         | 169               |
| 20180325         | 221               |
| 20171215         | 295               |
| 20160329         | 184               |
| 20180507         | 110               |
| 20160518         | 223               |
| 20180711         | 191               |
| 20170529         | 188               |
| 20180106         | 133               |
| 20180529         | 149               |
| 20180913         | 114               |
| 20160413         | 120               |
| 20180507         | 179               |
| 20180426         | 233               |
| 20181204         | 155               |
| 20170915         | 284               |
| 20171006         | 255               |
| 20161103         | 132               |
| 20160105         | 154               |
| 20171025         | 226               |
| 20180726         | 108               |
| 20170217         | 266               |
| 20160917         | 204               |
| 20181205         | 277               |
| 20180212         | 221               |
| 20170413         | 262               |
| 20180729         | 154               |
| 20180311         | 290               |
| 20170105         | 193               |
| 20160907         | 212               |
| 20180909         | 192               |
| 20170501         | 272               |
| 20180421         | 197               |
| 20171204         | 217               |
| 20181105         | 223               |
| 20170730         | 240               |
| 20160727         | 279               |
| 20180924         | 197               |
| 20170224         | 222               |
| 20180902         | 293               |
+------------------+-------------------+--+

#hive sql语句
===========================================================================================
第一种:
select distinct ddate,amount,
substr(ddate,1,6) as mtd_month,
(sum(amount) over(partition by substr(ddate,1,6) order by ddate))as mtd,
(sum(amount) over(partition by substr(ddate,1,6) order by substr(ddate,1,6)))as ytm,
substr(ddate,1,4) as ytd_year,
(sum(amount) over(partition by substr(ddate,1,4) order by ddate))as ytd
from date_orig order by ddate;

============================================================================================
第二种:
select d.ddate,d.amount,
substr(d.ddate,1,6) as mtd_month,
(sum(d.amount) over(partition by substr(d.ddate,1,6) order by d.ddate))as mtd,
(sum(d.amount) over(partition by substr(d.ddate,1,6) order by substr(d.ddate,1,6)))as ytm,
substr(d.ddate,1,4) as ytd_year,
(sum(d.amount) over(partition by substr(d.ddate,1,4) order by d.ddate))as ytd
from
(select distinct ddate,amount from date_orig) d order by d.ddate;

============================================================================================

#得到的结果
+-----------+-----------+------------+-------+-------+-----------+-------+--+
|  d.ddate  | d.amount  | mtd_month  |  mtd  |  ytm  | ytd_year  |  ytd  |
+-----------+-----------+------------+-------+-------+-----------+-------+--+
| 20160105  | 154       | 201601     | 154   | 317   | 2016      | 154   |
| 20160129  | 163       | 201601     | 317   | 317   | 2016      | 317   |
| 20160216  | 138       | 201602     | 138   | 138   | 2016      | 455   |
| 20160302  | 238       | 201603     | 238   | 720   | 2016      | 693   |
| 20160321  | 298       | 201603     | 536   | 720   | 2016      | 991   |
| 20160329  | 184       | 201603     | 720   | 720   | 2016      | 1175  |
| 20160413  | 120       | 201604     | 120   | 408   | 2016      | 1295  |
| 20160429  | 288       | 201604     | 408   | 408   | 2016      | 1583  |
| 20160518  | 223       | 201605     | 223   | 223   | 2016      | 1806  |
| 20160609  | 255       | 201606     | 255   | 794   | 2016      | 2061  |
| 20160610  | 270       | 201606     | 525   | 794   | 2016      | 2331  |
| 20160628  | 269       | 201606     | 794   | 794   | 2016      | 2600  |
| 20160723  | 206       | 201607     | 206   | 485   | 2016      | 2806  |
| 20160727  | 279       | 201607     | 485   | 485   | 2016      | 3085  |
| 20160801  | 150       | 201608     | 150   | 711   | 2016      | 3235  |
| 20160821  | 278       | 201608     | 428   | 711   | 2016      | 3513  |
| 20160825  | 283       | 201608     | 711   | 711   | 2016      | 3796  |
| 20160907  | 212       | 201609     | 212   | 1051  | 2016      | 4008  |
| 20160908  | 267       | 201609     | 479   | 1051  | 2016      | 4275  |
| 20160913  | 262       | 201609     | 741   | 1051  | 2016      | 4537  |
| 20160917  | 204       | 201609     | 945   | 1051  | 2016      | 4741  |
| 20160918  | 106       | 201609     | 1051  | 1051  | 2016      | 4847  |
| 20161011  | 179       | 201610     | 179   | 363   | 2016      | 5026  |
| 20161012  | 184       | 201610     | 363   | 363   | 2016      | 5210  |
| 20161103  | 132       | 201611     | 132   | 580   | 2016      | 5342  |
| 20161120  | 250       | 201611     | 382   | 580   | 2016      | 5592  |
| 20161127  | 198       | 201611     | 580   | 580   | 2016      | 5790  |
| 20161202  | 120       | 201612     | 120   | 298   | 2016      | 5910  |
| 20161222  | 178       | 201612     | 298   | 298   | 2016      | 6088  |
| 20170105  | 193       | 201701     | 193   | 193   | 2017      | 193   |
| 20170202  | 213       | 201702     | 213   | 701   | 2017      | 406   |
| 20170217  | 266       | 201702     | 479   | 701   | 2017      | 672   |
| 20170224  | 222       | 201702     | 701   | 701   | 2017      | 894   |
| 20170313  | 154       | 201703     | 345   | 660   | 2017      | 1239  |
| 20170313  | 191       | 201703     | 345   | 660   | 2017      | 1239  |
| 20170317  | 194       | 201703     | 539   | 660   | 2017      | 1433  |
| 20170330  | 121       | 201703     | 660   | 660   | 2017      | 1554  |
| 20170413  | 262       | 201704     | 262   | 512   | 2017      | 1816  |
| 20170430  | 250       | 201704     | 512   | 512   | 2017      | 2066  |
| 20170501  | 272       | 201705     | 272   | 629   | 2017      | 2338  |
| 20170512  | 169       | 201705     | 441   | 629   | 2017      | 2507  |
| 20170529  | 188       | 201705     | 629   | 629   | 2017      | 2695  |
| 20170607  | 198       | 201706     | 198   | 198   | 2017      | 2893  |
| 20170706  | 260       | 201707     | 260   | 500   | 2017      | 3153  |
| 20170730  | 240       | 201707     | 500   | 500   | 2017      | 3393  |
| 20170802  | 297       | 201708     | 297   | 815   | 2017      | 3690  |
| 20170816  | 161       | 201708     | 458   | 815   | 2017      | 3851  |
| 20170820  | 185       | 201708     | 643   | 815   | 2017      | 4036  |
| 20170821  | 172       | 201708     | 815   | 815   | 2017      | 4208  |
| 20170914  | 147       | 201709     | 147   | 537   | 2017      | 4355  |
| 20170915  | 284       | 201709     | 431   | 537   | 2017      | 4639  |
| 20170926  | 106       | 201709     | 537   | 537   | 2017      | 4745  |
| 20171006  | 255       | 201710     | 255   | 481   | 2017      | 5000  |
| 20171025  | 226       | 201710     | 481   | 481   | 2017      | 5226  |
| 20171116  | 131       | 201711     | 131   | 583   | 2017      | 5357  |
| 20171120  | 262       | 201711     | 393   | 583   | 2017      | 5619  |
| 20171130  | 190       | 201711     | 583   | 583   | 2017      | 5809  |
| 20171204  | 217       | 201712     | 217   | 512   | 2017      | 6026  |
| 20171215  | 295       | 201712     | 512   | 512   | 2017      | 6321  |
| 20180104  | 139       | 201801     | 139   | 272   | 2018      | 139   |
| 20180106  | 133       | 201801     | 272   | 272   | 2018      | 272   |
| 20180206  | 104       | 201802     | 104   | 501   | 2018      | 376   |
| 20180212  | 221       | 201802     | 325   | 501   | 2018      | 597   |
| 20180221  | 176       | 201802     | 501   | 501   | 2018      | 773   |
| 20180311  | 290       | 201803     | 290   | 729   | 2018      | 1063  |
| 20180325  | 221       | 201803     | 511   | 729   | 2018      | 1284  |
| 20180328  | 218       | 201803     | 729   | 729   | 2018      | 1502  |
| 20180421  | 197       | 201804     | 197   | 430   | 2018      | 1699  |
| 20180426  | 233       | 201804     | 430   | 430   | 2018      | 1932  |
| 20180505  | 173       | 201805     | 173   | 1183  | 2018      | 2105  |
| 20180507  | 179       | 201805     | 462   | 1183  | 2018      | 2394  |
| 20180507  | 110       | 201805     | 462   | 1183  | 2018      | 2394  |
| 20180514  | 143       | 201805     | 605   | 1183  | 2018      | 2537  |
| 20180525  | 177       | 201805     | 782   | 1183  | 2018      | 2714  |
| 20180529  | 149       | 201805     | 931   | 1183  | 2018      | 2863  |
| 20180530  | 252       | 201805     | 1183  | 1183  | 2018      | 3115  |
| 20180707  | 225       | 201807     | 225   | 678   | 2018      | 3340  |
| 20180711  | 191       | 201807     | 416   | 678   | 2018      | 3531  |
| 20180726  | 108       | 201807     | 524   | 678   | 2018      | 3639  |
| 20180729  | 154       | 201807     | 678   | 678   | 2018      | 3793  |
| 20180813  | 111       | 201808     | 111   | 402   | 2018      | 3904  |
| 20180817  | 291       | 201808     | 402   | 402   | 2018      | 4195  |
| 20180901  | 260       | 201809     | 260   | 1430  | 2018      | 4455  |
| 20180902  | 293       | 201809     | 553   | 1430  | 2018      | 4748  |
| 20180906  | 266       | 201809     | 819   | 1430  | 2018      | 5014  |
| 20180909  | 192       | 201809     | 1011  | 1430  | 2018      | 5206  |
| 20180913  | 114       | 201809     | 1125  | 1430  | 2018      | 5320  |
| 20180921  | 108       | 201809     | 1233  | 1430  | 2018      | 5428  |
| 20180924  | 197       | 201809     | 1430  | 1430  | 2018      | 5625  |
| 20181003  | 126       | 201810     | 126   | 386   | 2018      | 5751  |
| 20181009  | 260       | 201810     | 386   | 386   | 2018      | 6011  |
| 20181105  | 280       | 201811     | 503   | 880   | 2018      | 6514  |
| 20181105  | 223       | 201811     | 503   | 880   | 2018      | 6514  |
| 20181124  | 110       | 201811     | 613   | 880   | 2018      | 6624  |
| 20181128  | 267       | 201811     | 880   | 880   | 2018      | 6891  |
| 20181203  | 217       | 201812     | 217   | 986   | 2018      | 7108  |
| 20181204  | 155       | 201812     | 372   | 986   | 2018      | 7263  |
| 20181205  | 277       | 201812     | 649   | 986   | 2018      | 7540  |
| 20181218  | 221       | 201812     | 870   | 986   | 2018      | 7761  |
| 20181222  | 116       | 201812     | 986   | 986   | 2018      | 7877  |
+-----------+-----------+------------+-------+-------+-----------+-------+--+

通过hive sql实现报表中的MTD,YTM,YTD相关推荐

  1. Oracle MySQL Hive sql判断字符串中包含某个字符的个数

    用length函数求出字符串长度,再对源数据中某个字符去掉求字符串长度,两个长度相减,得出包含某个字符的个数 MySQL所有版本: select length('2022-11-16') - leng ...

  2. 学习SQL:使用日期和时间函数创建SQL Server报表

    In the previous two articles of this series, we've discussed how to create a report and how to use b ...

  3. 【数据分析师求职面试指南】必备编程技能整理之Hive SQL必备用法

    文章目录 熟悉Python 懂R语言 掌握SQL 大数据基础 数据库常用类型 多表查询 更多 聚合函数 distinct case when 窗口函数 动态更新 一行变多行 调优 内容整理自<拿 ...

  4. SQL Server 2005中设置Reporting Services发布web报表的匿名访问

    第一步:在运行IIS的Web服务器的本地访问http://localhost/reports ,这是Reporting Services的管理站点,在Properties(属性)页面下添加一个只有Br ...

  5. SQL Server报表生成器中的R脚本词云

    什么是R (What is R) R is a very popular data programing language. R is especially used in data analysis ...

  6. mysql小计_Mysql必读用SQL实现统计报表中的小计与合计的方法详解

    <Mysql必读用SQL实现统计报表中的"小计"与"合计"的方法详解>要点: 本文介绍了Mysql必读用SQL实现统计报表中的"小计&qu ...

  7. mysql 合计 小计_用SQL实现统计报表中的小计与合计的方法详解

    本篇文章是对使用SQL实现统计报表中的"小计"与"合计"的方法进行了详细的分析介绍,需要的朋友参考下 客户提出需求,针对某一列分组加上小计,合计汇总.网上找了一 ...

  8. Hive Sql中六种面试题型总结

    Hive Sql中六种面试题型总结 一.常用函数 二.N日留存 1.思路分析 三.连续登陆 1.数据准备 2.思路分析一 3.思路分析二 四.Top N 1.数据准备 2.思路分析 五.行列互转 1. ...

  9. Hive SQL 中ARRAY或MAP类型数据处理:lateral view explode()/posexplode()——行转列函数

    前言:在对表数据进行批量处理过程中,常常碰上某个字段是一个array或者map形式的字段,一列数据的该字段信息同时存在多个值,当我们需要取出该数组中的每一个值实现一一对应关系的时候,可以考虑使用lat ...

最新文章

  1. Go 学习笔记(7)— 常量定义、常量使用、枚举用法、iota 常量、不设置初始值常量
  2. 721合约 erc eth_深入了解「智能合约」及主流平台「智能合约」的查询方法
  3. des vue 双倍长 解密_3DES双倍长加密 - osc_ojx9hm4t的个人空间 - OSCHINA - 中文开源技术交流社区...
  4. 360金融发布Q2财报:净利6.92亿,同比增长114%,大数据与AI加持的科技服务是新亮点?
  5. matlab中的timer模块,[转载]Matlab中Timer的使用
  6. springboot配置文件priperties大全
  7. 【概念信息】成本中心计划
  8. 【算法导论】学习笔记——第16章 贪心算法
  9. 反射的基石——Class类
  10. 0810 - 代码,还是得一行行写
  11. MFC中STL容器中Vector,List,Map基本用法汇总
  12. 飞鸽传书扫描器 v1.3
  13. Vue学习笔记(六) 表单输入绑定
  14. CentOS下升级openssh版本
  15. 射频通信接收机设计的主要结构
  16. 【原创】 禁用ctfmon.exe 禁止ctfmon.exe自动启动
  17. matlab数值分析代码,数值分析matlab代码
  18. 【计算机网络】传输层 : 传输层概述 ( 设备层级 | 传输层功能 | TCP 协议 | UDP 协议 | 复用与分用 | 端口号 | 套接字 )
  19. 在日冕病毒时代的爱情-远程工作的技巧,窍门和最佳实践
  20. Mysql数据库root密码管理四法

热门文章

  1. 顺序查找与二分查找时间复杂度的比较
  2. 【上古秘籍】之Eclipse的秘籍 转
  3. ArcGIS 裁剪地图显示范围
  4. python输入语句没有定义_【20200925】Python基本语法
  5. 【新番尝鲜】秀逗魔导士E-revolution——罪名:莉娜*因巴斯
  6. 智能无人避障系统学习路线
  7. 路由交换接口类型详解——通俗易懂版
  8. 关掉微软没用的服务,让你的电脑提速百倍(转)
  9. 算法图解之狄克斯特拉算法实现
  10. 【平面图理论】平面图学习笔记