|
анализ дат нужны идеи как составить запрос
|
|||
---|---|---|---|
#18+
Коллеги, добрый день. Помогите пожалуйста с идеями, как можно с помощью SQL реализовать следующую вещь. Имею таблицу: WITH t1 AS ( select date'2020-04-29' AS calendar_dt ,'W' AS DT_TYPE from dual union all SELECT date'2020-04-30' AS calendar_dt ,'W' AS DT_TYPE from dual union all SELECT date'2020-05-01' AS calendar_dt ,'R' AS DT_TYPE from dual union all SELECT date'2020-05-02' AS calendar_dt ,'R' AS DT_TYPE from dual union all SELECT date'2020-05-03' AS calendar_dt ,'R' AS DT_TYPE from dual union all SELECT date'2020-05-04' AS calendar_dt ,'W' AS DT_TYPE from dual ) SELECT * FROM t1 order by 1 desc Задача: Для всех дат, которые имеют DT_TYPE = 'R', определить первую следующую дату, где DT_TYPE = 'W' и подставить ее отдельным столбцом. Т.е в приведенной таблице, напротив дат 01.05.2021, 02.05.2021, 03.05.2021 должна появиться дата 04.05.2021 В примере только часть таблицы. Количество подряд идущих дат с типом 'R' случайно и может не повторяться в остальных данных таблицы. Что лучше использовать для построения такого запроса и возможно ли вообще получить желаемый результат? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 22:06 |
|
анализ дат нужны идеи как составить запрос
|
|||
---|---|---|---|
#18+
Код: plsql 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. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 23:49 |
|
анализ дат нужны идеи как составить запрос
|
|||
---|---|---|---|
#18+
andrey_anonymous Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2021, 04:31 |
|
анализ дат нужны идеи как составить запрос
|
|||
---|---|---|---|
#18+
andrey_anonymous, вопрос не по селекту и его результату, а о сортировке (как обойти знаю) фича или баг? Код: plsql 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. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39.
..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2021, 09:33 |
|
анализ дат нужны идеи как составить запрос
|
|||
---|---|---|---|
#18+
Stax фича или баг? ИМХО баг ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2021, 13:30 |
|
анализ дат нужны идеи как составить запрос
|
|||
---|---|---|---|
#18+
Staxфича или баг? Bug 30645590 - Using descending order within the row_pattern_order_by syntax of a match_recognize query gives wrong final order (Doc ID 30645590.8) SORT ORDER BY нет в плане выполнения в 19.8, например: Код: plsql 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.
Для сравнения, вот план из 21.3: Код: plsql 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2021, 13:46 |
|
|
start [/forum/topic.php?fid=52&fpage=13&tid=1879933]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
55ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
others: | 10ms |
total: | 163ms |
0 / 0 |