|
Порядок вывода итогов 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
|
(0) http://www.sql-tutorial.ru/ru/book_summarizing_data_using_rollup.html
Тут коротко можно почитать... |
|||
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(далее тут список полей)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |