|
Упростить SQL запрос
|
|||
---|---|---|---|
#18+
Добрый день. Я создал запрос, такой чтобы из длинного списка тарифов на каждый день, сделать короткий список с диапазоном дат (с - по). Полагаю, что можно всё тоже самое сделать проще. Хотя вроде бы и так не плохо. Посоветуйте. PS тестовые данные with r as включены для удобства. Код: 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. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2019, 15:21 |
|
Упростить SQL запрос
|
|||
---|---|---|---|
#18+
STFF start_of_group Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2019, 15:52 |
|
Упростить SQL запрос
|
|||
---|---|---|---|
#18+
MazoHist, СПАСИБО ОГРОМНОЕ! ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2019, 16:18 |
|
Упростить SQL запрос
|
|||
---|---|---|---|
#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.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2019, 18:19 |
|
Упростить SQL запрос
|
|||
---|---|---|---|
#18+
andrey_anonymous, если есть order by res_date, s.res_date <= next.res_date надо (обязательно) указывать ? ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2019, 18:36 |
|
Упростить SQL запрос
|
|||
---|---|---|---|
#18+
Stax(обязательно) указывать ? Полагаю, что нет ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2019, 19:34 |
|
Упростить SQL запрос
|
|||
---|---|---|---|
#18+
andrey_anonymous, И вам спасибо. К сожалению у меня 11G - это не работает. Но на 12ом всё окей. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 10:19 |
|
Упростить SQL запрос
|
|||
---|---|---|---|
#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.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 15:17 |
|
Упростить SQL запрос
|
|||
---|---|---|---|
#18+
SYПроще ...но следует иметь ввиду, что без стартового элемента есть ньюансы matching: Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2019, 15:53 |
|
Упростить SQL запрос
|
|||
---|---|---|---|
#18+
andrey_anonymousSYПроще ...но следует иметь ввиду, что без стартового элемента есть ньюансы matching: [/src] Ньюанс в rate is null, или еще в чем то? зы define same_rate as rate = first(rate) null=null добавить nvl ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2019, 16:34 |
|
Упростить SQL запрос
|
|||
---|---|---|---|
#18+
StaxНьюанс в rate is null, или еще в чем то? В matching жеж :) Если по очереди раскомментировать оба варианта без стартового элемента и со стартовым, то можно увидеть, что оно работает по-разному, и это следует иметь ввиду. Был хороший гайд на эту тему - что-то про Deep Dive в этот самый pattern matching, уже не упомню ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2019, 17:28 |
|
Упростить SQL запрос
|
|||
---|---|---|---|
#18+
andrey_anonymousStaxНьюанс в rate is null, или еще в чем то? В matching жеж :) чет я с ручника никак не снимусь, не вижу (засліпило) разницы для pattern(strt same_rate*) и pattern(same_rate*) ps define same_rate as rate = first(rate) .... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2019, 17:53 |
|
Упростить SQL запрос
|
|||
---|---|---|---|
#18+
Staxчет я с ручника никак не снимусь, не вижу (засліпило) разницы для pattern(strt same_rate*) и pattern(same_rate*) Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2019, 18:02 |
|
Упростить SQL запрос
|
|||
---|---|---|---|
#18+
andrey_anonymous, спасибо, не туда смотрел ( https://apex.oracle.com) поведение "примерно" понятно .... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2019, 18:11 |
|
Упростить SQL запрос
|
|||
---|---|---|---|
#18+
Staxповедение "примерно" понятно Для улучшения понимания :) Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2019, 18:20 |
|
Упростить SQL запрос
|
|||
---|---|---|---|
#18+
andrey_anonymousStaxповедение "примерно" понятно Для улучшения понимания :) я так примерно и понимал токо раньше ето было связано со *, а счас и с правилом с null значениями ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2019, 18:41 |
|
Упростить SQL запрос
|
|||
---|---|---|---|
#18+
Staxтоко раньше ето было связано со *, а счас и с правилом с null значениями не човчем :) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2019, 18:59 |
|
Упростить SQL запрос
|
|||
---|---|---|---|
#18+
andrey_anonymousне човчем :) мож и так, я null пріплел к тому что вариант SY не отработает (надо nvl, decode, ...) а так, со старт выбрано одна строка, без "0" строк зы у нас 11-ка, да и ... .... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2019, 19:09 |
|
Упростить SQL запрос
|
|||
---|---|---|---|
#18+
andrey_anonymous...но следует иметь ввиду, что без стартового элемента есть ньюансы matching: Нюанс дейсвительно есть: Код: 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.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2019, 22:43 |
|
Упростить SQL запрос
|
|||
---|---|---|---|
#18+
Staxмож и так, я null пріплел к тому что вариант SY не отработает (надо nvl, decode, ...) Можно и без nvl/decode: Код: 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.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2019, 22:53 |
|
Упростить SQL запрос
|
|||
---|---|---|---|
#18+
SYStaxмож и так, я null пріплел к тому что вариант SY не отработает (надо nvl, decode, ...) Можно и без nvl/decode: SY. конечно можно но ето уже другой запрос (другие правила) ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2019, 09:34 |
|
Упростить SQL запрос
|
|||
---|---|---|---|
#18+
Staxandrey_anonymousне човчем :) мож и так, я null пріплел к тому что вариант SY не отработает Я всего лишь хотел привлечь внимание к тому, что наличие/отсутствие always-true переменной в шаблоне влияет на логику pattern matching и это стоит иметь ввиду, упрощая pattern - exceptions и прочих warning не будет :) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2019, 17:10 |
|
|
start [/forum/topic.php?fid=52&fpage=82&tid=1882688]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
28ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 152ms |
0 / 0 |