hive查询

tktrz96b  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(389)

我有一张table在下面

Date | Customer | Count | Daily_Count | ITD_Count  
    d1   |   A      |  3    |  3          |  
    d2   |   B      |  4    |  4          |  
    d3   |   A      |  7    |  16         |  
    d3   |   B      |  9    |  16         |  
    d4   |   A      |  8    |  9          |  
    d4   |   B      |  1    |  9          |

字段说明:
日期:年月日
客户:客户名称
计数:#客户
每日#客户数:每日#客户数计算为

SUM(count) OVER (partition BY date )as Daily_Count

问题:
如何计算itd\U计数中的运行总数或滚动总数?输出应该如下所示

Date | Customer | Count | Daily_Count | ITD_Count  
 d1   |   A      |  3    |  3          |  3
 d2   |   B      |  4    |  4          |  7
 d3   |   A      |  7    |  16         |  23
 d3   |   B      |  9    |  16         |  23
 d4   |   A      |  8    |  9          |  31
 d4   |   B      |  1    |  9          |  31

我试过几种使用窗口功能的方法。。但在我所有的尝试中都遇到了障碍。
尝试1;

SUM(daily_COunt) OVER (partition BY date order by date rows between unbounded preceding and current row ) as ITD_account_linking

尝试2:

SUM(daily_COunt) OVER (partition BY date, daily_count order by date rows between unbounded preceding and current row ) as ITD_account_linking

接下来还有几次尝试
欢迎任何可能的建议来指导我正确的方向。
如果你需要更多的细节,请告诉我。

hkmswyz6

hkmswyz61#

使用配置单元窗口和分析功能。

SELECT Date, Customer, Count, Daily_Count, 
        SUM(Daily_Count) OVER (ORDER BY Date ROWS UNBOUNDED PRECEDING) AS ITD_Count  
FROM table;

相关问题