SQL - 分组依据的子组中的期间范围

SQL - Period range in subgroups of a group by

我有以下数据集:

A B C
1 John 2018-08-14
1 John 2018-08-20
1 John 2018-09-03
2 John 2018-11-13
2 John 2018-12-11
2 John 2018-12-12
1 John 2020-01-20
1 John 2020-01-21
3 John 2021-03-02
3 John 2021-03-03
1 John 2020-05-10
1 John 2020-05-12

我希望得到以下结果:

A B C
1 John 2018-08-14
2 John 2018-11-13
1 John 2020-01-20
3 John 2021-03-02
1 John 2020-05-10

如果我按 A、B 分组,第一行和第三行只是连接在一起,这是连贯的。我怎样才能创建另一个列来仍然使用分组依据并获得我想要的结果。
如果您有与我不同的想法,请解释一下!
我尝试使用一些 first, last, rank,dense_rank 但没有成功。

使用延迟()。看起来 B 是数据中 A 的函数。所以检查 lag(A) 就足够了。

select A,B,C
from (
    select *, case when lag(A) over(order by C) = A then 0 else 1 end startFlag
    from mytable 
) t
where startFlag = 1
order by C