选择最早日期,并统计表中ID重复的行数



我有一个名为table1:的表

id   created_date
1001     2020-06-01
1001     2020-01-01
1001     2020-07-01
1002     2020-02-01
1002     2020-04-01
1003     2020-09-01

我正在尝试编写一个查询,它为我提供了一个不同id的列表,其中包含它们最早的created_date,以及每个id的行数:

id   created_date  count
1001     2020-01-01      3
1002     2020-02-01      2
1003     2020-09-01      1

我设法编写了一个窗口函数来获取最早的日期,但我很难确定count语句在其中的位置:

SELECT 
id,
created_date
FROM (  SELECT 
id, 
created_date,
row_number() OVER(PARTITION BY id ORDER BY created_date) as row_num
FROM table1)
) AS a
WHERE row_num = 1

您将使用聚合:

select id, min(create_date), count(*)
from table1
group by id;

我觉得很有趣的是,当低聚合能力足够时,您想要使用窗口函数——它被认为是更高级的。

相关内容

  • 没有找到相关文章

最新更新