|
|
|
Подсчитать сумму определённого процента первых строк в столбце (PL SQL Developer)
|
|||
|---|---|---|---|
|
#18+
Подскажите пожалуйста, каким образом можно посчитать скажем 30% максимальных значений в столбце (кол-во строк в столбце изначально неизвестно). Задача реализована следующим запросом, но можно ли сделать это более оптимальным образом, желательно в один запрос? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2016, 17:49:23 |
|
||
|
Подсчитать сумму определённого процента первых строк в столбце (PL SQL Developer)
|
|||
|---|---|---|---|
|
#18+
Vulgs, т.е. вас устраивает что 3 строки из 7 - это 30% выборки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2016, 18:21:46 |
|
||
|
Подсчитать сумму определённого процента первых строк в столбце (PL SQL Developer)
|
|||
|---|---|---|---|
|
#18+
bishnike, Да, устраивает. Округление вверх взято намеренно. Если в столбике будет 2 значения, то необходимо будет выбрать 1. Вообще, этот момент совершенно не критичен, как мне кажется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2016, 18:32:27 |
|
||
|
Подсчитать сумму определённого процента первых строк в столбце (PL SQL Developer)
|
|||
|---|---|---|---|
|
#18+
Vulgs, как минимум начните с упразднения одного уровня count()over() дает тоже самое что max(row_number()over()) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2016, 18:39:19 |
|
||
|
Подсчитать сумму определённого процента первых строк в столбце (PL SQL Developer)
|
|||
|---|---|---|---|
|
#18+
bishnike, Да, спасибо, так лучше конечно. Общая логика получается такая - первым подзапросом мы применяем аналитические функции по максимуму, вторым - агрегатные к получившемуся результату. Совместить аналитические и агрегатные функции на одном шагу у меня не получилось, значит и задачу эту в "одно действие" сделать не получится. Или всё таки есть способ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2016, 19:10:03 |
|
||
|
Подсчитать сумму определённого процента первых строк в столбце (PL SQL Developer)
|
|||
|---|---|---|---|
|
#18+
Vulgsу меня не получилось, значит ... не получитсяуверенности вашей можно только позавидовать :D А на какой версии СУБД вы работаете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2016, 19:23:20 |
|
||
|
Подсчитать сумму определённого процента первых строк в столбце (PL SQL Developer)
|
|||
|---|---|---|---|
|
#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. 30. 31. 32. 33. 34. 35. 36. 37. в 12с можно самовыразиться лаконичненько: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Унутре у ей неонка (с) - те же row_number() over() и ceil от 30/100 * count() over() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2016, 21:16:04 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=203&tid=1887550]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
58ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 363ms |

| 0 / 0 |
