Select第一行最后一组

Select the first row of the last group

我正在尝试查询 2012 SQL-服务器的一些数据。

数据如下table

From_Date To_Date
2020-11-29 2022-02-23
2022-02-23 2022-02-26
2022-02-27 2022-03-01 
2022-03-01 2022-03-04
2022-03-07 2022-03-10 
2022-03-10 2022-03-15

我想要得到的是连续日期块中的第一个日期。所提供示例中的这些块将是第 1->2 行、第 3->4 行和第 5->6 行。我想 return 第 5 行中的 from_date 列,因为它是最后一个连续日期块中的第一个日期。

我尝试过各种方法,但我对 SQL 不是很熟悉,所以我希望这里的任何人都可以指出正确的方向。提前致谢!

WITH
  gaps AS
(
  SELECT
    *,
    CASE WHEN from_date = LEAD(to_date) OVER (ORDER BY from_date DESC) THEN 0 ELSE 1 END  AS is_first_row_of_group
  FROM
    your_table
)
SELECT TOP (1)
  from_date
FROM
  gaps
WHERE
  is_first_row_of_group = 1
ORDER BY
  from_date DESC