|
Порядок вывода итогов SQL вперед как в 1С |
☑ |
0
Franchiser
гуру
22.02.23
✎
16:32
|
Есть запрос вида Select c группировокой вида group by grouping sets().
Можно ли вывести итоги перед детальными записями без использования order by?
|
|
1
NorthWind
22.02.23
✎
16:45
|
(0) вряд ли. SQL запрос обычно всегда возвращает ровно то что запрашивали, чтобы получить итоги, нужно отдельно взять select sum(), сount() и прочие агрегатные функции. Такого механизма вывода группировок, как в 1С, я не видел больше нигде.
|
|
2
hockeyist
22.02.23
✎
17:04
|
(0) Итоги - это иерархия (и рекурсия, добавим шепотом). Но иерархические базы данных в некотором смысле "не зашли". А в привычных нам базах данных иерархия - инородное тело. Попытки подружить одно с другим это всегда костыльные костыли.
|
|
3
H A D G E H O G s
22.02.23
✎
17:19
|
Group by rollup ?
|
|
4
Курцвейл
22.02.23
✎
17:38
|
Можно отдельной колонкой вывести, а потом при выводе результата решить что выводим, по строке или итог
|
|
5
Курцвейл
22.02.23
✎
17:39
|
|
|
6
Курцвейл
22.02.23
✎
17:40
|
Хотя может результат окна и первой строкой можно отобразить. Но я до такого не доходил
|
|
7
Said_We
22.02.23
✎
18:01
|
(3) В SQL итоги есть. Ответ в (3).
|
|
8
Said_We
22.02.23
✎
18:04
|
|
|
9
NorthWind
22.02.23
✎
18:43
|
(8) И решение при отстутствии ROLLUP/CUBE в выбранной БД подсказано - UNION "итогов по группировкам" с "группировками". До этого я, честно признаться, сразу не додумался...
|
|
10
eddy_n
22.02.23
✎
18:50
|
(9) В 90-ых на Информиксе, который АйБиЭм купила и похоронила, такое делали.
|
|
11
eddy_n
22.02.23
✎
18:53
|
Миллион кассет возили к заказчику, вдруг не считается какая.
|
|
12
Franchiser
гуру
23.02.23
✎
00:42
|
(0) ну почему там есть вариант group by ... With roll-up, with cube, функция grouping(). И я это успешно применяю. Только приходится обходить результат в обратном порядке потому что её устраивает что итоги в конце.
|
|
13
Franchiser
гуру
23.02.23
✎
00:43
|
(7) вопрос в том как сделать итоги не после , а до
|
|
14
Franchiser
гуру
23.02.23
✎
00:45
|
Но самое интересное в одном из видео я видел что у человека with cube как раз считает итоги до вывода более детальных записей, но у меня все равно итоги идут всегда в конце.
|
|
15
Franchiser
гуру
23.02.23
✎
00:56
|
Вариант с union all конечно можно использовать, но у меня фильтры есть на уровне итогов и нужно фильтровать по ним и подчинённые записи, а с union получается немного некрасиво.
|
|
16
Franchiser
гуру
23.02.23
✎
01:00
|
+(14) но у него какой то новый синтаксис был который у меня не работает cube(далее тут список полей)
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший