|
Помогите с запросом на поиск непрерывных промежутков
|
|||
---|---|---|---|
#18+
-- Что бы конкретнее было, сразу таблица Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
/* надо показать все непрерывные промежутки от 3х дней. Т.е. должно быть 1 - '2021-01-01'-'2021-01-03' 1 - '2021-01-10'-'2021-01-13' 2 - '2021-01-01'-'2021-01-04' сделал так: */ Код: sql 1. 2. 3. 4. 5. 6. 7.
/* 1 2021-01-01 2021-01-13 2 2021-01-01 2021-01-04 но это неправильно, т.к. у id=1 есть разрыв, а запрос его не учитывает. Подскажете как надо? */ ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2021, 08:36 |
|
Помогите с запросом на поиск непрерывных промежутков
|
|||
---|---|---|---|
#18+
реальная таблица, конечно, больше. Т.е. хотелось бы посмотреть общее решение.. вот бы еще кол-во дней подряд можно было менять.. зы Если интересно, это датчик - дата, когда заглючил/неответил. Если глючил один-два дня, ничего, бывает. А если подряд несколько дней, то надо разбираться. Период тоже важно "подсветить" (а не просто факт, что существует такой период), может тогда какие-то работы велись и это нормально тоже ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2021, 08:52 |
|
Помогите с запросом на поиск непрерывных промежутков
|
|||
---|---|---|---|
#18+
Опять 25. 1. Находим начала интервалов непрерывности: начало = дата когда НЕТ предыдущей даты. 2. Находим концы интервалов непрерывности: конец = дата когда НЕТ следующей даты. 3. Начал ровно столько сколько концов. 4. Нумеруем начала и концы ПО ПОРЯДКУ. 5. Соединяем по номерам. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2021, 09:11 |
|
Помогите с запросом на поиск непрерывных промежутков
|
|||
---|---|---|---|
#18+
RedVlad, Возможно, не самый лучший вариант. Но вариант )) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2021, 10:18 |
|
Помогите с запросом на поиск непрерывных промежутков
|
|||
---|---|---|---|
#18+
aleks222, >> upd: declare @T table (id int, DT datetime, I datetime) -- добавил столбец Понятно, спасибо. Получилось аля так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2021, 10:25 |
|
Помогите с запросом на поиск непрерывных промежутков
|
|||
---|---|---|---|
#18+
Oleg_SQL, Спасибо! Попробую на реальных данных и Ваш тоже. Какой быстрее будет, тот оставлю ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2021, 10:26 |
|
|
start [/forum/topic.php?fid=46&tid=1684349]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
130ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 236ms |
0 / 0 |