滚动计数的滚动总和

时间:2020-05-05 14:38:26

标签: sql apache-spark-sql hiveql

我有一个使用Spark SQL的SQL查询。

  1. 我想基于2列计算7天的滚动值,完成了
  2. 在第一笔交易的输出中,我仍然希望将其连续7天进行汇总
+----------+--------+------+---------------+--------+
|    col1| |   col1 |col3  |         col4  | date_id|
+----------+--------+------+---------------+--------+
|eVA3Nh    | 16.9314|    72|     8b01bfffff|20191201|     
|loCMK     | 12.9988|    72|     8b29dfffff|20191202|     
|7G0HL     |718.8329|   144|     8b01bfffff|20191203|     
|loCMK     | 12.9988|    72|     8b29dfffff|20191204|     
|7G0HL     |718.8329|   144|     8b01bfffff|20191205|     
|loCMK     | 12.9988|    72|     8b29dfffff|20191206|     
|loCMK     | 12.9988|    72|     8b29dfffff|20191207|     
|eVA3N     | 16.9314|    72|     8b01bfffff|20191209|   
|7G0HL     |718.8329|   144|     8b01bfffff|20191212|
|7G0HL     |718.8329|   144|     8b01bfffff|20191217|
|7G0HL     |718.8329|   144|     8b01bfffff|20191219|
+----------+--------+------+---------------+--------+

我希望连续4天基于col1和col4的count(1)/ 4个值

当我收到输出信息时,我也想连续四天总结一下,请您多多包涵。

select a.date_id, 
       a.col4, 
       a.col1, 
       count(1)/7

from {0} a
right join ({0}) f ON
          a.col4 = f.col4 and a.col1=f.col1
          and to_date(f.date_id, "yyyyMMdd") between date_sub(to_date(a.date_id, "yyyyMMdd"), 3)
          and  to_date(a.date_id, "yyyyMMdd")

group by 1,2,3
order by 1

这要计算4天的滚动时间,我需要计算4天的输出滚动时间,我如何将表加入为

0 个答案:

没有答案