|   |   | 
| 
 | Порядок вывода итогов 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(далее тут список полей)     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |