Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
30042015
Guest |
Здравствуйте ! Есть непрерывная последовательность дат declare @Tmp table(ADate smalldatetime, AIndex int) insert into @Tmp select '20150101',0 union select '20150102',0 union select '20150103',0 union select '20150104',0 union select '20150105',1 union select '20150106',1 union select '20150107',1 union select '20150108',0 union select '20150109',0 union select '20150110',0 union select '20150111',1 union select '20150112',1 нужно получить табличку вида
Помогите пожалуйста, а то мозг уже не варит |
||||||||||||||||
30 апр 15, 14:53 [17587484] Ответить | Цитировать Сообщить модератору |
Добрый Э - Эх
Guest |
30042015, группировка по разности между датой и row_number() over(дата). ну или поиск по форуму тем с моим участием по ключевому слову GRP_ID |
30 апр 15, 15:19 [17587717] Ответить | Цитировать Сообщить модератору |
Adony Member Откуда: Москва Сообщений: 1083 |
with t1 as ( select t.*, dateadd(day, -row_number() over (partition by t.AIndex order by t.ADate), t.ADate) as dt from @Tmp t ) select min(t1.ADate), max(t1.ADate), t1.AIndex from t1 group by t1.dt, t1.AIndex |
30 апр 15, 15:19 [17587719] Ответить | Цитировать Сообщить модератору |
Добрый Э - Эх
Guest |
|
||
30 апр 15, 15:22 [17587741] Ответить | Цитировать Сообщить модератору |
Winnipuh Member [заблокирован] Откуда: Київ Сообщений: 10428 |
тогда наверное так: ;with t1 as ( select t.*, dateadd(day, -row_number() over (partition by t.AIndex order by t.ADate), t.ADate) as dt from @Tmp t ) select min(t1.ADate), max(t1.ADate), t1.AIndex from t1 group by t1.dt, t1.AIndex order by 1 |
||
30 апр 15, 15:27 [17587780] Ответить | Цитировать Сообщить модератору |
zasandator Member [скрыт] [заблокирован] Откуда: Сообщений: 4887 |
30042015, читай задачу "островки" Ицик Бен-Ган автор. Он как раз именно это там разжевывает для чайников |
30 апр 15, 16:37 [17588199] Ответить | Цитировать Сообщить модератору |
30042015
Guest |
Спасибо ! |
30 апр 15, 16:39 [17588205] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |