|
|
|
last_value странный результат
|
|||
|---|---|---|---|
|
#18+
Не понимаю, почему last_value дает такой результат: Код: plaintext 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. Группа одна. Сортируется по del_date. Значит last_value должна вернуть rowid соответсвующий записи с del_date 06.10.2018. То есть AAAFmoAAFAAAAH/AAE. А результата - три разных. Как будто есть три группы. Правильный ответ будет тиолько если я явно указываю безразмерное окно: last_value(t.rowid) over(order by del_date ASC NULLS FIRST ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) Не понимаю, почему так. Люблю галеры - работящий коллектив, романтика мужского труда. Стоишь на мостике в пене брызг и эдак поворотясь: - Голубчик! Утроить количество ударов - Али-паша уходит... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2018, 18:17 |
|
||
|
last_value странный результат
|
|||
|---|---|---|---|
|
#18+
MaxiflyГруппа одна. Сортируется по del_date. Значит last_value должна вернуть rowid соответсвующий записи с del_date 06.10.2018. То есть AAAFmoAAFAAAAH/AAE. А результата - три разных. Как будто есть три группы. Это потому что кое-кто не понимает, какие умолчания действуют для сортированных окон. Что у нас по синтаксису пишется после order by? Отож :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2018, 18:23 |
|
||
|
last_value странный результат
|
|||
|---|---|---|---|
|
#18+
andrey_anonymous, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW А я-то думал безразмерный по умолчанию. Блин, век живи - век учись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2018, 18:33 |
|
||
|
last_value странный результат
|
|||
|---|---|---|---|
|
#18+
MaxiflyА я-то думал безразмерный по умолчанию. Без order by - "безразмерный". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2018, 18:35 |
|
||
|
last_value странный результат
|
|||
|---|---|---|---|
|
#18+
Maxiflyandrey_anonymous, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW А я-то думал безразмерный по умолчанию. Блин, век живи - век учись. Вы уверены что по умолчанию такое окно? імхо ето не так ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2018, 08:58 |
|
||
|
last_value странный результат
|
|||
|---|---|---|---|
|
#18+
Stax, Да, range. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2018, 09:55 |
|
||
|
last_value странный результат
|
|||
|---|---|---|---|
|
#18+
LAST_VALUE авторIf you omit the windowing_clause of the analytic_clause, it defaults to RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW. This default sometimes returns an unexpected value, because the last value in the window is at the bottom of the window, which is not fixed. It keeps changing as the current row changes. For expected results, specify the windowing_clause as RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING. Alternatively, you can specify the windowing_clause as RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING. имхо не совсем правильное поведение, по умолчанию должно было бы быть без ограничений, хочешь ограничить указывай как, но что выросло то выросло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2018, 14:48 |
|
||
|
last_value странный результат
|
|||
|---|---|---|---|
|
#18+
SkilledJuniorимхо не совсем правильное поведение Еще один воинствующий? Предлагаю поискать систему : Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2018, 14:58 |
|
||
|
last_value странный результат
|
|||
|---|---|---|---|
|
#18+
andrey_anonymous, лично мне более удобно если БЫ по умолчанию было ROWS ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2018, 15:22 |
|
||
|
last_value странный результат
|
|||
|---|---|---|---|
|
#18+
SkilledJuniorимхо не совсем правильное поведение, по умолчанию должно было бы быть без ограничений, хочешь ограничить указывай как, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2018, 15:26 |
|
||
|
last_value странный результат
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousSkilledJuniorимхо не совсем правильное поведение Еще один воинствующий? Предлагаю поискать систему : Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Почему сразу воинствующий? Например, max(r) over() и max(r) over(order by r), ты можешь объяснить почему максимальное значение должно зависеть от сортировки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2018, 16:20 |
|
||
|
last_value странный результат
|
|||
|---|---|---|---|
|
#18+
SkilledJuniorПочему сразу воинствующий?Потому что не читает документацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2018, 16:30 |
|
||
|
last_value странный результат
|
|||
|---|---|---|---|
|
#18+
SkilledJuniorпочему максимальное значение должно зависеть от сортировки?Возможно, пригодится пример из моей книги . Подраздел "Differences and interchangeability of functions", страница 49. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2018, 16:34 |
|
||
|
last_value странный результат
|
|||
|---|---|---|---|
|
#18+
SkilledJuniorНапример, max(r) over() и max(r) over(order by r), ты можешь объяснить почему максимальное значение должно зависеть от сортировки? максимальное значение зависит от окна окно разное для over() и over(order by r) ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2018, 16:34 |
|
||
|
last_value странный результат
|
|||
|---|---|---|---|
|
#18+
dbms_photoshop, Добавил в избранное, ознакомлюсь попозже, спасибо. Stax, Вопрос как раз в том, почему разное, я не задавал ограничения окна в явном виде, оно наложено по умолчанию потому что так посчитали нужным разработчики, имхо это не совсем верно. ElicПотому что не читает документацию. В документации "что выросло, то выросло", а могло бы быть и по другому, ИМХО по другому было бы логичнее, но это мое ИМХО. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2018, 16:51 |
|
||
|
last_value странный результат
|
|||
|---|---|---|---|
|
#18+
Staxлично мне более удобно если БЫ по умолчанию было ROWSдобавляй в order by уникальное значение, хотя бы rownum, и будет тебе "rows". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2018, 16:52 |
|
||
|
last_value странный результат
|
|||
|---|---|---|---|
|
#18+
SkilledJuniorВ документации "что выросло, то выросло", а могло бы быть и по другому, ИМХО по другому было бы логичнее, но это мое ИМХО.Ага, злые дяди, писавшие стандарт, забыли спросить у шкета на горшке, как ему будет потом логичнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2018, 16:58 |
|
||
|
last_value странный результат
|
|||
|---|---|---|---|
|
#18+
ElicАга, злые дяди, писавшие стандарт, забыли спросить у шкета на горшке, как ему будет потом логичнее. Ну да, прямо боги с небес спустились горшки обжигать стандарт писать)) Staxлично мне более удобно если БЫ по умолчанию было ROWS Согласен. andrey_anonymousПредлагаю поискать систему : RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW (по умолчанию), не имеет смысла: max(r) over(order by r) last_value(r) over(order by r) и в том и другом случае они просто равны r не имеет смысла order by: max(r) over(order by r RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) sum(r) over(order by r RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) last_value(r) over() - вообще непредсказуемый результат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2018, 01:41 |
|
||
|
last_value странный результат
|
|||
|---|---|---|---|
|
#18+
SkilledJuniorRANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW (по умолчанию), не имеет смысла: max(r) over(order by r) last_value(r) over(order by r) и в том и другом случае они просто равны r Да ну? Шел бы ты учить матчасть: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. SkilledJuniorlast_value(r) over() - вообще непредсказуемый результат. С точностью до наоборот. last_value(r) over() всегда вернет последнее в порядке возрастания значение r среди всех выбранных значений r. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2018, 04:35 |
|
||
|
last_value странный результат
|
|||
|---|---|---|---|
|
#18+
SkilledJuniorlast_value(r) over() - вообще непредсказуемый результат.Воинствующий ламер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2018, 08:23 |
|
||
|
last_value странный результат
|
|||
|---|---|---|---|
|
#18+
SkilledJuniorRANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW (по умолчанию), не имеет смыслакак раз открытая задняя граница в макс не имеет смысла так как совпадает с вообще без указания ордер бы. Причем даже в случае разных выражений макс-значения и сортировки. SkilledJuniorlast_value(r) over() - вообще непредсказуемый результат.Where rownum без сортировки в подзапросе. Кто-то заставляет полагаться на порядок без указания ордер бы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2018, 10:44 |
|
||
|
last_value странный результат
|
|||
|---|---|---|---|
|
#18+
-2-, Речь о том, что параметров по умолчанию для любых случаев нет, результат работы аналитических функций в определенных условиях теряет смысл и эти условия для разных функций разные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2018, 14:00 |
|
||
|
last_value странный результат
|
|||
|---|---|---|---|
|
#18+
-2-Where rownum без сортировки в подзапросе. Кто-то заставляет полагаться на порядок без указания ордер бы? Не очень понял при чем здесь rownum, вроде про аналитические функции ведем разговор, для last_value сортировка в подзапросе ничего не гарантирует. SYДа ну? Шел бы ты учить матчасть Мы рассматривали вариант с суррогатным первичным ключом для строки выборки, а он вроде как not null, в противном случае ситуация поправима)) Код: plsql 1. SYС точностью до наоборот. last_value(r) over() всегда вернет последнее в порядке возрастания значение r среди всех выбранных значений r. ElicSkilledJuniorlast_value(r) over() - вообще непредсказуемый результат.Воинствующий ламер. Ребята, позвольте с вами не согласиться, помедитируйте на досуге: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 4 Код: plsql 1. 2. 3. 10 Код: plsql 1. 2. 3. 10 Код: plsql 1. 2. 3. 4. 0 Код: plsql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2018, 14:30 |
|
||
|
last_value странный результат
|
|||
|---|---|---|---|
|
#18+
SkilledJunior параметров по умолчанию для любых случаев нетдефолтные параметры есть. Ламеризм побуждает тебя искать несуществующие изъяны. Просмотрел последние десять тем с применением last_value. Только в одной используется unbounded following. Одинаковые дефолты не только позволяют применять пользовательские и десятки стандартных функций без оглядки в документацию на вариативность, но и оберегают ленивых джуниоров от лишних умолчательных пересортировок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2018, 14:41 |
|
||
|
last_value странный результат
|
|||
|---|---|---|---|
|
#18+
-2-Одинаковые дефолты не только позволяют применять пользовательские и десятки стандартных функций без оглядки в документацию на вариативность Это не так и ТС тому пример. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2018, 14:47 |
|
||
|
last_value странный результат
|
|||
|---|---|---|---|
|
#18+
SkilledJunior-2-Одинаковые дефолты не только позволяют применять пользовательские и десятки стандартных функций без оглядки в документацию на вариативностьЭто не так и ТС тому пример.В русском языке правильно употреблятствовать "без оглядки НА ...". "в документацию" второстепенное уточнение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2018, 15:56 |
|
||
|
last_value странный результат
|
|||
|---|---|---|---|
|
#18+
-2-В русском языке правильно употреблятствовать "без оглядки НА ...". "в документацию" второстепенное уточнение. В русском языке нет такой корявой конструкции как "без оглядки в ... на ...", но это не важно, ибо форум не посвящен чистоте русского языка. По смысловой нагрузке тоже ничего радикально не меняется, если бы вы были правы эта тема не появилась бы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2018, 23:27 |
|
||
|
last_value странный результат
|
|||
|---|---|---|---|
|
#18+
SkilledJuniorПо смысловой нагрузке тоже ничего радикально не меняется, если бы вы были правы эта тема не появилась бы.Ламерьё всегда прикрывает некой "логикой" неспособность к вдумчивому прочтению документации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2018, 07:42 |
|
||
|
last_value странный результат
|
|||
|---|---|---|---|
|
#18+
ElicЛамерьё всегда прикрывает некой "логикой" неспособность к вдумчивому прочтению документации. Ты сам на грабли наступил 21697010 , это означает твою неспособность вдумчиво читать документацию? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2018, 11:31 |
|
||
|
last_value странный результат
|
|||
|---|---|---|---|
|
#18+
SkilledJuniorТы сам на грабли наступил 21697010 , это означает твою неспособность вдумчиво читать документацию?Перестань бредить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2018, 11:35 |
|
||
|
last_value странный результат
|
|||
|---|---|---|---|
|
#18+
-2-Staxлично мне более удобно если БЫ по умолчанию было ROWSдобавляй в order by уникальное значение, хотя бы rownum, и будет тебе "rows". результат совпадет с ROWS но, насколько я себе представляю ранже алгоритм более сложен поетому, когда не ленился явно прописывал окно из-за ROWS ps повторюсь, мне бы удобнее было чтоб по умолчанию был ROWS, и не надо было б добавлять rownum/rowid и тд .... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2018, 13:10 |
|
||
|
last_value странный результат
|
|||
|---|---|---|---|
|
#18+
Staxи не надо было б добавлять rownum/rowid и тдА мне удобней обеспечивать детерминированную сортировку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2018, 13:50 |
|
||
|
|

start [/forum/topic.php?all=1&fid=52&tid=1883362]: |
0ms |
get settings: |
8ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
148ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 456ms |

| 0 / 0 |
