|
|
|
Пятничная. Без PL/SQL определить подмножества, удовлетворяющие условиям
|
|||
|---|---|---|---|
|
#18+
Есть исходное множество Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. IDAB112234356478590 Есть условия, которым должны удовлетворять подмножества: 1. Количество строк подмножества в диапазоне (2,4) - Cnt 2. Сумма по полю A в диапазоне (5,15) - Sum_A 3. Среднее арифметическое по полю B в диапазоне (4,5) -Avg_B Код: plsql 1. 2. 3. 4. 5. 6. CNT_MINCNT_MAXSUM_A_MINSUM_A_MAXAVG_B_MINAVG_B_MAX2451545 результат вывести в виде списка ID строк подмножеств с рассчитанными значениями Sub_Set_IDCntSum_AAvg_B 1;3264 1;4285 3;2285 1;3;2394 1;4;23114.67 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2018, 13:06 |
|
||
|
Пятничная. Без PL/SQL определить подмножества, удовлетворяющие условиям
|
|||
|---|---|---|---|
|
#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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2018, 13:42 |
|
||
|
Пятничная. Без PL/SQL определить подмножества, удовлетворяющие условиям
|
|||
|---|---|---|---|
|
#18+
andrey_anonymous Спасибо, зачёт! Для борьбы со скукой - база 10G ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2018, 14:28 |
|
||
|
Пятничная. Без PL/SQL определить подмножества, удовлетворяющие условиям
|
|||
|---|---|---|---|
|
#18+
Est_vopros, Ну сделай то же самое через connect by, только нельзя будет отсекать во время построения. Соответсвенно с просадкой перфоманса. Зато меньше букв. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2018, 14:37 |
|
||
|
Пятничная. Без PL/SQL определить подмножества, удовлетворяющие условиям
|
|||
|---|---|---|---|
|
#18+
andrey_anonymous, Отсекать по верхней границе среднего на этапе построения выглядит не очень "надежно", особенно при немонотонно возрастающих b. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2018, 14:47 |
|
||
|
Пятничная. Без PL/SQL определить подмножества, удовлетворяющие условиям
|
|||
|---|---|---|---|
|
#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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2018, 14:48 |
|
||
|
Пятничная. Без PL/SQL определить подмножества, удовлетворяющие условиям
|
|||
|---|---|---|---|
|
#18+
dbms_photoshopandrey_anonymous, Отсекать по верхней границе среднего на этапе построения выглядит не очень "надежно", особенно при немонотонно возрастающих b. Туговато соображаю. Может, контрпример для наглядности? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2018, 14:51 |
|
||
|
Пятничная. Без PL/SQL определить подмножества, удовлетворяющие условиям
|
|||
|---|---|---|---|
|
#18+
andrey_anonymous, Код: plsql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2018, 15:04 |
|
||
|
Пятничная. Без PL/SQL определить подмножества, удовлетворяющие условиям
|
|||
|---|---|---|---|
|
#18+
dbms_photoshopandrey_anonymous, Код: plsql 1. 2. 3. 4. Спасибо. Бессонная ночь не прошла даром :( Этот чек действительно разумнее вынести наружу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2018, 15:52 |
|
||
|
Пятничная. Без PL/SQL определить подмножества, удовлетворяющие условиям
|
|||
|---|---|---|---|
|
#18+
dbms_photoshopandrey_anonymous, Код: plsql 1. 2. 3. 4. 5. 6. После перестановки предиката всё работает правильно. Или в чем-то подвох? Код: 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. SUB_SET_IDCNTSUM_AAVG_B1;32641;2;43114.671;2;53135 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2018, 15:59 |
|
||
|
Пятничная. Без PL/SQL определить подмножества, удовлетворяющие условиям
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2018, 16:03 |
|
||
|
Пятничная. Без PL/SQL определить подмножества, удовлетворяющие условиям
|
|||
|---|---|---|---|
|
#18+
-2- Спасибо! Даже на 10G работает, если listagg заменить. А какое решение будет работать на 10G если увеличить исходное множество Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2018, 17:06 |
|
||
|
Пятничная. Без PL/SQL определить подмножества, удовлетворяющие условиям
|
|||
|---|---|---|---|
|
#18+
Est_voprosА какое решение будет работать на 10G если увеличить исходное множествоКомбинаторику не проходил? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2018, 17:42 |
|
||
|
Пятничная. Без PL/SQL определить подмножества, удовлетворяющие условиям
|
|||
|---|---|---|---|
|
#18+
Est_voprosА какое решение будет работать на 10G если увеличить исходное множество Код: plsql 1. Законнектбыть powermultiset_by_cardinality между Cnt_Min и Cnt_Max. Для Cnt=2-4 получится около 25 тысяч комбинаций, что для sql посильно. Кроме того, в предположении, что нет отрицательных, из перестановок можно выкинуть исходные Start_Set, заведомо превышающие Sum_A_Max. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2018, 18:10 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39712481&tid=1883378]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
136ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 219ms |
| total: | 442ms |

| 0 / 0 |
