Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何按日期统计配置单元SQL表中的新ID数?_Sql_Hive_Count_Window Functions - Fatal编程技术网

如何按日期统计配置单元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