|
|
|
Интервалы дат
|
|||
|---|---|---|---|
|
#18+
В таблице несколько записей с интервалами дат: 22.09.18 10.10.18 23.09.18 11.10.18 24.09.18 12.10.18 25.09.18 13.10.18 26.09.18 14.10.18 27.09.18 15.10.18 23.10.18 10.11.18 24.10.18 11.11.18 Нужно "схлопнуть" пересекающиеся интервалы, в данном примере должно получиться на выходе запроса: 22.09.18 15.10.18 23.10.18 11.11.18 Подскажите как написать запрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2018, 10:57 |
|
||
|
Интервалы дат
|
|||
|---|---|---|---|
|
#18+
Dimets, хотя, в вашем случае всё гораздо проще: группировать по разности между датой и row_number-ом в сортировке по этой самой дате... так сказать, по "инварианту группы"... тоже, кстати можно поискать на форуме , если что... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2018, 11:01 |
|
||
|
Интервалы дат
|
|||
|---|---|---|---|
|
#18+
Щукина АннаDimets, хотя, в вашем случае всё гораздо проще: группировать по разности между датой и row_number-ом в сортировке по этой самой дате... так сказать, по "инварианту группы"... тоже, кстати можно поискать на форуме , если что...таки нет. у вас же интервалы, а не последовательный список дат... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2018, 11:07 |
|
||
|
Интервалы дат
|
|||
|---|---|---|---|
|
#18+
Щукина АннаDimets, хотя, в вашем случае всё гораздо проще: группировать по разности между датой и row_number-ом в сортировке по этой самой дате... так сказать, по "инварианту группы"... тоже, кстати можно поискать на форуме , если что... да, это немного не то ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2018, 11:12 |
|
||
|
Интервалы дат
|
|||
|---|---|---|---|
|
#18+
Dimets, варианты из первой ссылки, всё же - то, что доктор прописал... задача, максимально приближенная к вашей: ссылко Не обращайте внимания, что там MS SQL. Решение один-в-один на оракле пишется. Просто этот пост весьма нагляден. "С картинками", что называется... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2018, 11:19 |
|
||
|
Интервалы дат
|
|||
|---|---|---|---|
|
#18+
Щукина АннаDimets, варианты из первой ссылки, всё же - то, что доктор прописал... задача, максимально приближенная к вашей: ссылко Не обращайте внимания, что там MS SQL. Решение один-в-один на оракле пишется. Просто этот пост весьма нагляден. "С картинками", что называется... Объединение диапазонов дат идущих подряд ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2018, 11:42 |
|
||
|
Интервалы дат
|
|||
|---|---|---|---|
|
#18+
StaxОбъединение диапазонов дат идущих подряд ..... staxсуть решения не меняется. пересечения отрабатываются также корректно, как и следующие последовательно друг за другом интервалы... более того, там в решении пересечения создаются искусственно, посредством сдвига даты окончания диапазона на один день вперед... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2018, 11:48 |
|
||
|
Интервалы дат
|
|||
|---|---|---|---|
|
#18+
Щукина Анна, "идущих подряд" решается намного проще - rownum ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2018, 11:56 |
|
||
|
Интервалы дат
|
|||
|---|---|---|---|
|
#18+
StaxЩукина Анна, "идущих подряд" решается намного проще - rownum ..... staxидущих подряд дат - собрать в диапазоны - да,проще через row_number. но суть в том, что там не даты идущие подряд, а диапазоны дат (причем - разновеликие - есть подлиннее, есть покороче). и тут row_number-а уже не хватит... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2018, 11:59 |
|
||
|
Интервалы дат
|
|||
|---|---|---|---|
|
#18+
Щукина Анна, конешно не катит, поетому пользуем решение Доброго-Еха Объединение временных промежутков ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2018, 12:04 |
|
||
|
Интервалы дат
|
|||
|---|---|---|---|
|
#18+
Щукина Анна но суть в том, что там не даты идущие подряд, а диапазоны дат (причем - разновеликие - есть подлиннее, есть покороче). и тут row_number-а уже не хватит... сдвиг на один день, длина тож вроде одинаковая (19) если не магия данных, то -rownum хватит ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2018, 12:13 |
|
||
|
Интервалы дат
|
|||
|---|---|---|---|
|
#18+
переборол лентяйство и набрал тестовые магия данных Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. .... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2018, 12:21 |
|
||
|
Интервалы дат
|
|||
|---|---|---|---|
|
#18+
Stax, Если добавить вот эту строку, то возникает не работает: Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2018, 12:48 |
|
||
|
Интервалы дат
|
|||
|---|---|---|---|
|
#18+
Stax, Можно попробовать вот так: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2018, 12:55 |
|
||
|
Интервалы дат
|
|||
|---|---|---|---|
|
#18+
mibinStax, Если добавить вот эту строку, то возникает не работает: Код: plsql 1. Код: plsql 1. 2. 3. 4. 5. сдвиг на один день, длина тож вроде одинаковая (19) ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2018, 13:03 |
|
||
|
Интервалы дат
|
|||
|---|---|---|---|
|
#18+
mibin, мое решение 21668009 в общем случае неверное (или просто неверное), магия данных ето скорее схлопнуть последовательность интевальчиков через "один" день одной длины непрерывные интевалы (схлопнуть) красиво решил Добрый-Ех ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2018, 13:09 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39699474&tid=1883486]: |
0ms |
get settings: |
7ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
22ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
2ms |
| others: | 192ms |
| total: | 329ms |

| 0 / 0 |
