【问题标题】:How to count the number of NEW ids in hive SQL table by date?如何按日期计算 hive SQL 表中 NEW id 的数量?
【发布时间】:2023-04-08 12:01:01
【问题描述】:

我有一张桌子,上面有一堆月份和 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

我真的迷失了解决此问题的最佳方法,并且无法找到与此问题类似的任何内容。

【问题讨论】:

    标签: sql hive count window-functions


    【解决方案1】:

    一个选项使用两个级别的聚合。假设 monthdate 数据类型(或至少可以始终按日期排序):

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-17
      • 2021-05-06
      • 2020-07-26
      • 2010-10-17
      • 1970-01-01
      • 2018-12-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多