Как написать этот запрос на mssql
У меня на табле есть такие данные
Date - число
01.07.2020 - 1
02.07.2020 - 1
05.07.2020 - 2
06.07.2020 - 2
07.07.2020 - 2
10.07.2020 - 1
11.07.2020 - 1
14.07.2020 - 3
17.07.2020 - 1
18.07.2020 - 1
19.07.2020 - 1
23.07.2020 - 1
24.07.2020 - 1
Какой select должен быть что на результате вила такая
01.07.2020 - старт 02.07.2020 - энд
05.07.2020 - старт 07.07.2020 - энд
10.07.2020 - старт 11.07.2020 - энд
14.07.2020 - старт 14.07.2020 - энд
17.07.2020 - старт 24.07.2020 - энд
Ответы (1 шт):
Автор решения: Akina
→ Ссылка
WITH
cte AS (SELECT dt,
num,
ROW_NUMBER() OVER (ORDER BY dt) rn1,
ROW_NUMBER() OVER (PARTITION BY num ORDER BY dt) rn2
FROM test)
SELECT DISTINCT
MIN(dt) OVER (PARTITION BY rn1 - rn2) start,
MAX(dt) OVER (PARTITION BY rn1 - rn2) finish
FROM cte
ORDER BY start;