首页 > 解决方案 > Hive/Impala 更改表计数

问题描述

我有一个发布日期列表(一些过去和一些未来)和一个注册号列表。

release date     registration
01/01/2019        R1
02/01/2019        R2
07/02/2019        R3

我基本上想创建一个新表,该表将显示每天(未来日期)的注册号总数。

date            total registration numbers
05/02/2019       2
06/02/2019       2
07/02/2019       3

我知道如何使用 count(*) 来查找注册数量,并且我考虑过将其与未来日期的日历表结合起来。

标签: sqlhiveimpala

解决方案


如果你有一个日历表,你可以使用窗口函数:

select c.date,
       count(t.date) as registrations_on_day,
       sum(count(t.date)) over (order by c.date) as registrations_through_day
from calendar c left join
     t
     on c.date = t.date
group by c.date
order by c.date;

推荐阅读