|
Можно ли упростить запрос (first_value, только для агрегации)
|
|||
---|---|---|---|
#18+
Есть таблица slices, в которой несколько раз в день (moment) фиксируются некие значения (value). Нужно получить набор значений на начало дня (точнее самые первые значения в текущих сутках). Делаю примерно так: Код: plsql 1. 2. 3. 4. 5. 6.
Но в реальном запросе этих value у меня довольно много. Я для каждого повторяю min(...) keep (dense_rank first order by moment). А можно упростить? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 16:17 |
|
Можно ли упростить запрос (first_value, только для агрегации)
|
|||
---|---|---|---|
#18+
А что в текущем варианте не устраивает? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 16:24 |
|
Можно ли упростить запрос (first_value, только для агрегации)
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 18:57 |
|
Можно ли упростить запрос (first_value, только для агрегации)
|
|||
---|---|---|---|
#18+
Спасибо. Не нравилось много однотипных строк, думал можно улучшить. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 20:13 |
|
Можно ли упростить запрос (first_value, только для агрегации)
|
|||
---|---|---|---|
#18+
Alibek B., а сервер у вас какой версии? Начиная с 12С, должно работать такое: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 20:38 |
|
Можно ли упростить запрос (first_value, только для агрегации)
|
|||
---|---|---|---|
#18+
Мне такое решение очень нравится. Есть ли у него подводные камни для большого числа ties? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 21:19 |
|
Можно ли упростить запрос (first_value, только для агрегации)
|
|||
---|---|---|---|
#18+
НеофитSQL Мне такое решение очень нравится. Есть ли у него подводные камни для большого числа ties? Если посмотреть (через DBMS_UTILITY.EXPAND_SQL_TEXT) то под капотом банальный: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 21:35 |
|
Можно ли упростить запрос (first_value, только для агрегации)
|
|||
---|---|---|---|
#18+
SY, Спасибо, очень полезная штука. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 21:37 |
|
Можно ли упростить запрос (first_value, только для агрегации)
|
|||
---|---|---|---|
#18+
SY Если посмотреть (через DBMS_UTILITY.EXPAND_SQL_TEXT) то под капотом банальный: ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 21:42 |
|
Можно ли упростить запрос (first_value, только для агрегации)
|
|||
---|---|---|---|
#18+
Кстати: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Через fetch first: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Без fetch first: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Почему: Код: 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.
Так-что доверяй но проверяй. SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 22:41 |
|
Можно ли упростить запрос (first_value, только для агрегации)
|
|||
---|---|---|---|
#18+
andreymx, MySql по-моему это умеет, но не забудут ли кодеры что select вычисляется после group by? Код: plsql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 23:55 |
|
Можно ли упростить запрос (first_value, только для агрегации)
|
|||
---|---|---|---|
#18+
НеофитSQL andreymx, MySql по-моему это умеет, но не забудут ли кодеры что select вычисляется после group by? Код: plsql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 00:11 |
|
|
start [/forum/topic.php?fid=52&msg=40025320&tid=1880634]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
29ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 126ms |
0 / 0 |