|
Какая многоуровневая группировка эффективнее?
|
|||
---|---|---|---|
#18+
Иногда нужно бывает сделать выборку из БД в Excel, чтобы уже в Excel рисовать отчеты и графики. Часто бывает нужно сделать группировку на нескольких уровнях (с итогами на каждом уровне). Иногда я из БД получаю сырые данные и группирую непосредственно в Excel (сводные таблицы), а иногда удобнее группировать в БД. Например для двухуровневой группировки можно сделать так: Код: 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.
Здесь я дублирую данные на уровне BM_GROUP, а затем задаю вспомогательный критерий группировки, общий для одного из продублированных наборов и детальный для второго набора. Но также можно обойтись без дублирования строк, завернув запрос в выражение WITH, а затем применив select ... from CTE union all select ... from CTE group by GRP. Какой способ лучше? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2020, 16:54 |
|
Какая многоуровневая группировка эффективнее?
|
|||
---|---|---|---|
#18+
Alibek B., group by cube/grouping set и прочее разве не для этого придуманы? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2020, 17:08 |
|
Какая многоуровневая группировка эффективнее?
|
|||
---|---|---|---|
#18+
Я про них не знал. Да, похоже что именно для этого. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2020, 17:10 |
|
Какая многоуровневая группировка эффективнее?
|
|||
---|---|---|---|
#18+
Alibek B. Я про них не знал. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2020, 17:20 |
|
Какая многоуровневая группировка эффективнее?
|
|||
---|---|---|---|
#18+
Alibek B. Я про них не знал. Да, похоже что именно для этого. в древних весрсиях через union all и реализовывалось в доке табличка была во что "трансформируются" cube, rollup ... .... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2020, 17:35 |
|
|
start [/forum/topic.php?fid=52&fpage=49&tid=1881385]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 287ms |
total: | 424ms |
0 / 0 |