【问题标题】:New ids by month每个月的新 ID
【发布时间】:2019-11-22 14:14:21
【问题描述】:

对此我想了很多,但找不到答案,而且我不太擅长 SQL 查询。

表1:

id    |     month
_________________
123   |   11/2015
124   |   11/2015
123   |   12/2015
124   |   12/2015
125   |   12/2015

我需要一个查询,它可以为我提供每月新 ID 的数量。 在示例中,我想输出:

#id  |     month
_________________
 2   |   11/2015
 1   |   12/2015

因为“123”和“124”是在 11/2015,所以 2 因为“125”不在12/2015,所以1

抱歉,如果我不清楚,我尝试使用自连接和滞后查找它,但找不到答案

谢谢

【问题讨论】:

    标签: sql date count


    【解决方案1】:

    可以使用not exists过滤掉上个月已经出现的ids,然后聚合:

    select count(*) id_cnt, t.month
    from mytable t
    where not exists (
        select 1 
        from mytable t1
        where t1.id = t.id 
        and t1.month < t.month
    )
    group by t.month
    

    【讨论】:

    • 如果一个 id 可以在一个月内重复多次,可能还需要在某处有一个不同的地方,但这是 OP 必须决定他是否需要的东西
    猜你喜欢
    • 1970-01-01
    • 2018-06-28
    • 1970-01-01
    • 2017-02-18
    • 1970-01-01
    • 2021-01-23
    • 1970-01-01
    • 2021-07-31
    • 2023-03-20
    相关资源
    最近更新 更多