|
|
|
Выборка верхних строк с определенной суммой столбца
|
|||
|---|---|---|---|
|
#18+
Есть таблица Id Quantity1 502 1003 504 205 606 207 100 где Id 1 - самая новая запись, Id 7 - старая. Нужно выбрать верхние строки с общей суммой столбца "Quantity" не менее 250, то есть ожидаемый результат: Id Quantity1 502 1003 504 205 60 Сам пока дошел только до такого: Код: sql 1. 2. 3. 4. 5. 6. В результате получаю меньше, чем нужно, на 1 строку: Id Quantity1 502 1003 504 20 Заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2017, 19:11 |
|
||
|
Выборка верхних строк с определенной суммой столбца
|
|||
|---|---|---|---|
|
#18+
Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2017, 19:25 |
|
||
|
Выборка верхних строк с определенной суммой столбца
|
|||
|---|---|---|---|
|
#18+
Bad The John Boy Код: plsql 1. Ну и про NULL не забываем. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2017, 21:30 |
|
||
|
Выборка верхних строк с определенной суммой столбца
|
|||
|---|---|---|---|
|
#18+
Bad The John Boy, Спасибо, то, что нужно. Но исходная задача немного изменилась. Допустим, в исходном сферическом примере Id могут повторяться: Id Quantity1 501 1002 503 203 603 204 1004 105 50 В конечной выборке нужны все строки с тем Id, когда сумма Quantity становится 250+, то есть: Id Quantity1 501 1002 503 203 603 20 Логично, что нужно просто в Код: plsql 1. использовать range вместо rows, но с range не допускается использовать выражения типа "and 1 preceding". Как быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2017, 15:47 |
|
||
|
Выборка верхних строк с определенной суммой столбца
|
|||
|---|---|---|---|
|
#18+
Lynxovatс range не допускается использовать выражения типа "and 1 preceding"субд не попутал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2017, 16:19 |
|
||
|
Выборка верхних строк с определенной суммой столбца
|
|||
|---|---|---|---|
|
#18+
-2-Lynxovatс range не допускается использовать выражения типа "and 1 preceding"субд не попутал? Да вроде нет: Oracle Database 11g Release 11.2.0.3.0 - 64bit Production Так то, в принципе он не ругается, но и не работает, как ожидается - не добавляет весь range, хотя с rows всё прокатывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2017, 16:41 |
|
||
|
Выборка верхних строк с определенной суммой столбца
|
|||
|---|---|---|---|
|
#18+
LynxovatТак то, в принципе он не ругается, но и не работает, как ожидается - не добавляет весь range, хотя с rows всё прокатывает. Все он показывает: Код: 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. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2017, 17:05 |
|
||
|
Выборка верхних строк с определенной суммой столбца
|
|||
|---|---|---|---|
|
#18+
SY, Спасибо! Внимательно посмотрел ваш пример и добавил Код: sql 1. Всё заработало. Видимо, это и имелось ввиду под "Ну и про NULL не забываем." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2017, 17:21 |
|
||
|
Выборка верхних строк с определенной суммой столбца
|
|||
|---|---|---|---|
|
#18+
LynxovatВсё заработало. Видимо, это и имелось ввиду под "Ну и про NULL не забываем." Т.е. ты хочешь сказать что с ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING бeз NVL pаботало ? Помедитируй что вернет пeрвый ROW/RANGE при 1 PRECEDING. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2017, 17:46 |
|
||
|
Выборка верхних строк с определенной суммой столбца
|
|||
|---|---|---|---|
|
#18+
SYLynxovatВсё заработало. Видимо, это и имелось ввиду под "Ну и про NULL не забываем." Т.е. ты хочешь сказать что с ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING бeз NVL pаботало ? Помедитируй что вернет пeрвый ROW/RANGE при 1 PRECEDING. SY. Хм, без nvl теряет первый row/range, всё остальное исправно выводит. Да, сложно назвать это "работало". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2017, 17:58 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39384567&tid=1886641]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
193ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 507ms |

| 0 / 0 |
