如何按日期计算 hive SQL 表中 NEW id 的数量?
Posted
技术标签:
【中文标题】如何按日期计算 hive SQL 表中 NEW id 的数量?【英文标题】:How to count the number of NEW ids in hive SQL table by date? 【发布时间】:2020-08-26 21:23:16 【问题描述】:我有一张桌子,上面有一堆月份和 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
我真的迷失了解决此问题的最佳方法,并且无法找到与此问题类似的任何内容。
【问题讨论】:
【参考方案1】:一个选项使用两个级别的聚合。假设 month
是 date
数据类型(或至少可以始终按日期排序):
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
【讨论】:
以上是关于如何按日期计算 hive SQL 表中 NEW id 的数量?的主要内容,如果未能解决你的问题,请参考以下文章