每月新编号

时间:2019-11-22 14:14:21

标签: sql

我对此进行了很多思考,但找不到答案,而且我不太擅长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

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

谢谢

1 个答案:

答案 0 :(得分:2)

您可以使用not exists过滤掉上个月已经出现的id,然后进行汇总:

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