如何按日期统计配置单元SQL表中的新ID数?
我有一张有几个月和身份证的桌子。我想数一数我每个月有多少新身份证。例如,假设我有下表:如何按日期统计配置单元SQL表中的新ID数?,sql,hive,count,window-functions,Sql,Hive,Count,Window Functions,我有一张有几个月和身份证的桌子。我想数一数我每个月有多少新身份证。例如,假设我有下表: 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 我真的
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
我真的迷失在最佳的解决方法上,没有找到任何与此问题类似的方法。一个选项使用两个级别的聚合。假设该月为日期数据类型,或至少是可以一致排序为日期的某个月:
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