Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / rollup+having / 6 сообщений из 6, страница 1 из 1
15.07.2016, 15:05:31
    #39274738
sql_4t34
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
rollup+having
Здравствуйте,
почему rollup считает итог по всей таблице, не успользуя having отсечение?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SQL> select
  2    department_id, count(*)
  3  from
  4   hr.employees
  5   group by rollup (department_id)
  6   having count(*) > 20
  7     ;

DEPARTMENT_ID   COUNT(*)
------------- ----------
           50         45
           80         34
                     109
...
Рейтинг: 0 / 0
15.07.2016, 15:41:50
    #39274774
mlc
mlc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
rollup+having
sql_4t34,

потому что сначала выполняется group by, а потом having.
...
Рейтинг: 0 / 0
15.07.2016, 16:02:38
    #39274799
sql_4t34
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
rollup+having
mlc, спасибо.
Как получить итог после having, не подскажите?
...
Рейтинг: 0 / 0
15.07.2016, 18:34:40
    #39274938
гроупинг
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
rollup+having
sql_4t34,

фильтруй через where в надзапросе, а итог подмени условной суммой каунтов.
...
Рейтинг: 0 / 0
15.07.2016, 21:35:35
    #39274978
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
rollup+having
гроупингsql_4t34,

фильтруй через where в надзапросе, а итог подмени условной суммой каунтов.

grouping + аналитика:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
select  department_id,
        case grouping(department_id)
          when 0 then count(*)
          else sum((1 - grouping(department_id)) * count(*)) over()
        end cnt
  from  hr.employees
  group by rollup (department_id)
  having count(*) > 20
/

DEPARTMENT_ID        CNT
------------- ----------
           50         45
           80         34
                      79

SQL>



SY.
...
Рейтинг: 0 / 0
18.07.2016, 11:50:32
    #39275512
sql_4t34
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
rollup+having
Красиво, спасибо!
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / rollup+having / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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