Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / rollup / cube / 16 сообщений из 16, страница 1 из 1
08.08.2017, 16:47
    #39501976
kuzea
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
rollup / cube
При использовании rollup общий итог появляется внизу, а когда пользуюсь cube (в той же самой выборке) общий итог выводится первым. Может кто-то подскажет, почему так? Хотелось бы в cube-случае отправить его тоже вниз.

select department_id, sum(salary) sal from employees
where department_id is not null and department_id < 50
group by rollup(department_id);


department_id sal10 440020 1900030 2490040 6500(null) 54800

select department_id, sum(salary) sal from employees
where department_id is not null and department_id < 50
group by cube(department_id);


department_id sal(null) 5480010 440020 1900030 2490040 6500
...
Рейтинг: 0 / 0
08.08.2017, 16:51
    #39501980
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
rollup / cube
kuzeaитог появляется внизуorder by
...
Рейтинг: 0 / 0
08.08.2017, 16:52
    #39501981
Vint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
rollup / cube
kuzea,
открой для себя groupipng sets и GROUPING_ID
ну и потом почитай про order by
...
Рейтинг: 0 / 0
08.08.2017, 16:55
    #39501982
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
rollup / cube
kuzea,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
SQL> ed
Wrote file afiedt.buf

  1  select deptno, sum(sal) sal from emp
  2  where deptno is not null and deptno < 50
  3  group by cube(deptno)
  4* order by deptno,grouping(deptno)
SQL> /

    DEPTNO        SAL
---------- ----------
        10       8750
        20      10875
        30       9400
                29025



.....
stax
...
Рейтинг: 0 / 0
08.08.2017, 16:56
    #39501983
kuzea
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
rollup / cube
Ну ORDER BY или с помощью GROUPING , конечно, проблема решится. Это всё понятно.
Непонятно, почему так по-разному ведут себя rollup и cube. Нигде не могу про это найти почитать. Поэтому, собственно, и написал на форум.
...
Рейтинг: 0 / 0
08.08.2017, 16:59
    #39501987
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
rollup / cube
kuzea,

Потому что сортировку гарантирует только order by.
...
Рейтинг: 0 / 0
08.08.2017, 17:03
    #39501991
orawish
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
rollup / cube
kuzeaНу ORDER BY или с помощью GROUPING , конечно, проблема решится. Это всё понятно.
Непонятно, почему так по-разному ведут себя rollup и cube. Нигде не могу про это найти почитать. Поэтому, собственно, и написал на форум.
потому, что никто (то есть вендор) не обещал вам иного.
хотите - как уже вам подсказали - например order by grouping_id()
...
Рейтинг: 0 / 0
08.08.2017, 17:13
    #39501999
kuzea
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
rollup / cube
orawishkuzeaНу ORDER BY или с помощью GROUPING , конечно, проблема решится. Это всё понятно.
Непонятно, почему так по-разному ведут себя rollup и cube. Нигде не могу про это найти почитать. Поэтому, собственно, и написал на форум.
потому, что никто (то есть вендор) не обещал вам иного .
хотите - как уже вам подсказали - например order by grouping_id()

ууу, как всё запущено)). ясненько, спасибо
...
Рейтинг: 0 / 0
08.08.2017, 17:18
    #39502003
Vint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
rollup / cube
kuzea,
поставь oracle 8.1.7 там в группировке сортировка была))) точно будет порядок. и пиши без order by...
...
Рейтинг: 0 / 0
08.08.2017, 17:34
    #39502014
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
rollup / cube
Vintkuzea,
поставь oracle 8.1.7 там в группировке сортировка была))) точно будет порядок. и пиши без order by...


https://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:3230380179748
Код: 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.
Asked: March 29, 2002 - 12:51 pm UTC
Answered by: Tom Kyte - Last updated: June 01, 2017 - 11:01 am UTC
Category: Database - Version: 8.1.5

SQL> select mth, otype, count(*)
  2  from akp1
  3  group by cube(mth, otype);

MTH       OTYPE                COUNT(*)
--------- ------------------ ----------
                                    118
          TYPE                        2
          VIEW                       15
          PACKAGE                   101
august                                3
august    VIEW                        1
august    PACKAGE                     2
july                                109
july      VIEW                       13
july      PACKAGE                    96
october                               3

MTH       OTYPE                COUNT(*)
--------- ------------------ ----------
october   TYPE                        2
october   VIEW                        1
september                             3
september PACKAGE                     3

15 rows selected.




.....
stax
...
Рейтинг: 0 / 0
08.08.2017, 17:49
    #39502028
Vint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
rollup / cube
Stax,
что именно ты хочешь показать? что там по дефолту nulls first всегда? ну да...
...
Рейтинг: 0 / 0
08.08.2017, 17:54
    #39502030
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
rollup / cube
VintStax,
что именно ты хочешь показать? что там по дефолту nulls first всегда? ну да...

Vintkuzea,
поставь oracle 8.1.7 там в группировке сортировка была))) точно будет порядок. и пиши без order by...

хочу сказать что и в восьмерке придется пользоваться order by

имхо
order by надо писать всегда (но лень), даже когда порядок по умолчанию подходит



.....
stax
...
Рейтинг: 0 / 0
08.08.2017, 18:01
    #39502031
j2k
j2k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
rollup / cube
Staxимхо
order by надо писать всегда (но лень)
Если нужен отсортированный результат

PS блин, сижу, думаю, что-то не-то. А потом понял - stax зарегистрировался :D
...
Рейтинг: 0 / 0
08.08.2017, 18:23
    #39502056
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
rollup / cube
j2kStaxимхо
order by надо писать всегда (но лень)
Если нужен отсортированный результат

PS блин, сижу, думаю, что-то не-то. А потом понял - stax зарегистрировался :D

рискнул

.....
stax
...
Рейтинг: 0 / 0
08.08.2017, 18:54
    #39502074
Vint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
rollup / cube
j2k,
надо предложить джуджу специально для стакса сделать отдельный стиль ника)) серый подчеркнутый))

Stax
я имел в виду что в восьмерке ты всегда получал гарантированный результат при группировке. потому что механизм группировки был через сортировку)
...
Рейтинг: 0 / 0
08.08.2017, 19:51
    #39502121
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
rollup / cube
Vintj2k,

Stax
я имел в виду что в восьмерке ты всегда получал гарантированный результат при группировке. потому что механизм группировки был через сортировку)
Vint ето скорее об шестерке/семеркы

я плолохо помню 8-ю, обычно мы перескакивали через версию

помню, гуру/спецов до белого каления дововодил

подчинится ли оптимизатор ПРАВИЛЬНОМУ хинту

в семерке, был обязан подчинится, но тихонько из доки убрали

.....
stax
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / rollup / cube / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]