|
Как сэкономить на втором ORDER BY для ROW_NUMBER() ?
|
|||
---|---|---|---|
#18+
Приветствую! Такой вопрос: надо, чтобы отсортированный запрос в одной колонке бы сообщал номер строки в отсортированной выдаче. Решил таком вот способом (смотри ниже), но немного напрягает необходимость в ROW_NUMBER() OVER(...) повтрять весь список из ORDER BY запроса. Есть ли возможность без вкладывания всего запроса в подзапрос (и далее через ROWNUM) как-нибудь красиво избавиться от дублирования перечисления отсортированных полей? Oracle 19 Заранее спасибо. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2022, 17:11 |
|
Как сэкономить на втором ORDER BY для ROW_NUMBER() ?
|
|||
---|---|---|---|
#18+
Вот что нагуглил, надо же что бывает Код: plaintext
https://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:9537769800346072683 Код: plsql 1. 2. 3. 4. 5. 6. 7.
Результат вроде то что надо ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2022, 17:34 |
|
Как сэкономить на втором ORDER BY для ROW_NUMBER() ?
|
|||
---|---|---|---|
#18+
Кроик Семён Вот что нагуглил, надо же что бывает ... Результат вроде то что надо гарантировано ли ето? я б не рисковал ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2022, 17:55 |
|
Как сэкономить на втором ORDER BY для ROW_NUMBER() ?
|
|||
---|---|---|---|
#18+
Код: plsql 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2022, 19:40 |
|
Как сэкономить на втором ORDER BY для ROW_NUMBER() ?
|
|||
---|---|---|---|
#18+
AmKad Код: plsql 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2022, 20:59 |
|
Как сэкономить на втором ORDER BY для ROW_NUMBER() ?
|
|||
---|---|---|---|
#18+
провёл тест предложенного AmKad варианта order by ORDER_ID, у него такой же план, как и у мной нагугленного с OVER (ORDER BY NULL) запрос пока ещё без колонки ORDER_ID Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Вообще интересно, что ниже у всех запросов с колонкой ORDER_ID одинаковый план запроса. Сервер догадался, что речь об одном и том же. Это впечатляет тот код, который хотел упростить Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
два варианта упрощения Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.02.2022, 14:18 |
|
|
start [/forum/topic.php?fid=52&msg=40135866&tid=1879490]: |
0ms |
get settings: |
8ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
52ms |
get topic data: |
2ms |
get forum data: |
1ms |
get page messages: |
153ms |
get tp. blocked users: |
0ms |
others: | 353ms |
total: | 576ms |
0 / 0 |