Имя: Пароль:
1C
1С v8
Порядок вывода итогов 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(далее тут список полей)
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс