如何按日期计算hive sql表中的新id数量?

csga3l58  于 2021-04-08  发布在  Hive
关注(0)|答案(1)|浏览(628)

我有一个表,里面有很多月份和ID,我想统计一下每个月有多少新的ID进来。例如,我有下面的表。

Month | ID
------------
Jan   | 123
Jan   | 456
Jan   | 789
Feb   | 123
Feb   | 101112
Mar   | 456
Mar   | 12345
Mar   | 6789

我希望输出为:

Month | # New IDS
------------------
Jan   | 3
Feb   | 1
Mar   | 2

我真的很迷茫,不知道该怎么做才好,也没能找到与这个问题类似的东西。

a14dhokn

a14dhokn1#

其中一个选项使用两级汇总,假设 "月 "是一个 "日期 "数据类型(或至少是可以一致排序为日期的东西)。

select month, count(*) new_ids
from (select min(month) month from mytable group by id) t
group by month

您也可以使用窗口功能。

select month, count(*) new_ids
from (
    select month, row_number() over(partition by id order by month) rn
    from mytable
) t
where rn = 1

相关问题