|
|
|
Группировка в Oracle
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousКомбинаторику-то не обманешь, это правда, но зачем же стулья ломать? :) ...что-то подозревать я начал на тесте с mod(rownum,1000) - т.е. по сотне значений на id, это ведь "в пределах", да? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 21:44 |
|
||
|
Группировка в Oracle
|
|||
|---|---|---|---|
|
#18+
andrey_anonymous Код: plsql 1. 2. 3. Комбинаторику-то не обманешь, это правда, но зачем же стулья ломать? :) Не понял с какого перепугу "40 rows selected". Select должен вернуть 699993 строк: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 22:08 |
|
||
|
Группировка в Oracle
|
|||
|---|---|---|---|
|
#18+
SYНе понял с какого перепугу "40 rows selected". Select должен вернуть 699993 строк: Упс, пора перечитывать условия опять. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 22:11 |
|
||
|
Группировка в Oracle
|
|||
|---|---|---|---|
|
#18+
SYУпс, пора перечитывать условия опять. Похоже Андрей слепил "магию данных". Исходя из примера я решил что значения C2 - C6 уникальны a он слепил тест с повторяющимися значениями и скорее всего просто всунул DISTINCT в COLLECT: Код: 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. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 22:48 |
|
||
|
Группировка в Oracle
|
|||
|---|---|---|---|
|
#18+
SYПохоже Андрей слепил "магию данных". Не магию. Контрпример. Собственно, я зацепился глазом за эту тему, когда увидел решение агрегатной задачи на аналитике-фильтрации. Затем - комментарий к решению на агрегате "искусство ради искусства". Мои тараканы устроили митинг, на котором дружно заявили о недооценке спецэффектов, проистекающих от перерасхода памяти под промежуточные наборы данных (что весьма характерно для "аналитического" подхода к задаче агрегации). Я устроил тараканам репрессии и от комментариев удержался. Но тут влез Fogel и стало совсем смешно. Как итог - я построил демонстрационный контр-пример, просто слегка размножив исходный набор. Следует отметить, что эффект превзошел мои самые смелые ожидания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 23:13 |
|
||
|
Группировка в Oracle
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousСледует отметить, что эффект превзошел мои самые смелые ожидания. Ну а я просто вижу эффект неполного определения условий задачи. Тут важное значение имеет уникальны ли c2 - c6. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 01:05 |
|
||
|
Группировка в Oracle
|
|||
|---|---|---|---|
|
#18+
SYТут важное значение имеет уникальны ли c2 - c6. Поясню: Код: 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. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. А вот агрегация c DISTINCT "умнее": Код: 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. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 01:32 |
|
||
|
Группировка в Oracle
|
|||
|---|---|---|---|
|
#18+
Добрый день. Прошу совета как сделать, чтобы не плодить темы, решил написать здесь. Мне нужно сделать группировку. дано select null id, 32 d_id, 71 sn from dual union select null id, 62 d_id, 56 sn from dual union select 7 id, 62 d_id, 60 sn from dual union select null id, 60 d_id, 41 sn from dual union select null id, 82 d_id, 1 sn from dual union select 10 id, 82 d_id, 2 sn from dual union select 15 id, 82 d_id, 3 sn from dual нужно вывести id d_id sn null 32 71 7 62 60 null 60 41 15 82 3 Заранее спасибо за ответ. P.S. Нужно использовать аналитику? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2018, 15:42 |
|
||
|
Группировка в Oracle
|
|||
|---|---|---|---|
|
#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.04.2018, 15:49 |
|
||
|
Группировка в Oracle
|
|||
|---|---|---|---|
|
#18+
Egoр, Открой свою тему. Незачем "уводить" (не нашел лучшего перевода для hijack) чужую. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2018, 16:04 |
|
||
|
Группировка в Oracle
|
|||
|---|---|---|---|
|
#18+
SYEgoр, Открой свою тему. Незачем "уводить" (не нашел лучшего перевода для hijack) чужую. SY.Вообще-то я товарищу DenFrost ответил DenFrost Добрый день. Прошу совета как сделать, чтобы не плодить темы, решил написать здесь. Мне нужно сделать группировку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2018, 16:47 |
|
||
|
Группировка в Oracle
|
|||
|---|---|---|---|
|
#18+
DenFrost, а что не получается? Код: 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. .... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2018, 18:18 |
|
||
|
Группировка в Oracle
|
|||
|---|---|---|---|
|
#18+
я наверное чуток не дописал, вывести строчки с максимальным id по d_id и также строчки с id is null дано id d_id sn 3271 625676254 60 41 82110821115828 получить id d_id sn 327176254 60 4115828 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 07:32 |
|
||
|
Группировка в Oracle
|
|||
|---|---|---|---|
|
#18+
я придумал такой вариант, может есть проще select * from ( select a.* , nvl(max (id) over (partition by d_id order by id desc nulls last), 0) max_id from ( select null id, 32 d_id, 71 sn from dual union select null id, 62 d_id, 56 sn from dual union select 15 id, 82 d_id, 8 sn from dual union select 7 id, 62 d_id, 54 sn from dual union select null id, 60 d_id, 41 sn from dual union select null id, 82 d_id, 0 sn from dual union select 10 id, 82 d_id, 11 sn from dual ) a ) where id = max_id or max_id = 0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 07:50 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39636845&tid=1884085]: |
0ms |
get settings: |
4ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
56ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 329ms |

| 0 / 0 |
