Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Обычная группировка и группировка в окне на одном уровне / 8 сообщений из 8, страница 1 из 1
21.02.2017, 10:16
    #39408313
GroupByOver
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обычная группировка и группировка в окне на одном уровне
Возможно ли переписать запрос без подзапроса
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
with t as (select mod(level, 3) lvl, 
                  round(dbms_random.value(1, 100), 0) val
             from dual    
          connect by level < 100)
select lvl, sum_val, sum(sum_val) over() total_sum
  from (select lvl, sum(val) sum_val
          from t
         group by lvl)
 order by lvl


Если пытаться оконные функции втыкать на один уровень с обычной группировкой, то резонно ругается, что в выражении group by нет группировки по sum_val, если же ее добавляешь, то результат получается естественно не тот. То есть вроде как нельзя?
...
Рейтинг: 0 / 0
21.02.2017, 10:24
    #39408318
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обычная группировка и группировка в окне на одном уровне
GroupByOverТо есть вроде как нельзя?Можно, но ты даже не продемонстрировал потугов.
...
Рейтинг: 0 / 0
21.02.2017, 10:29
    #39408324
Возможно
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обычная группировка и группировка в окне на одном уровне
...
Рейтинг: 0 / 0
21.02.2017, 10:31
    #39408327
GroupByOver
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обычная группировка и группировка в окне на одном уровне
Elic. например такой легкий потуг
Код: plsql
1.
2.
3.
4.
5.
6.
7.
with t as (select mod(level, 3) lvl, 
                  round(dbms_random.value(1, 100), 0) val
             from dual    
          connect by level < 100)
select distinct lvl, sum(val) over(partition by lvl) sum_val, sum(val) over() total_sum
  from t
 order by lvl


Но это не то, здесь одна аналитика плюс еще дистинкт, а вопрос немного другой.
...
Рейтинг: 0 / 0
21.02.2017, 11:11
    #39408367
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обычная группировка и группировка в окне на одном уровне
GroupByOverвопрос немного другой.Не надо умничать, когда не понимаешь несложных вещей.
Код: plsql
1.
select lvl, sum(val) sum_val, sum(sum(val)) over() total_sum

...
Рейтинг: 0 / 0
21.02.2017, 11:37
    #39408391
GroupByOver
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обычная группировка и группировка в окне на одном уровне
Elic, спасибо. Никто и не умничает, потуги просили? Ну вот... )
Насчет несложных вещей согласен, не догадался, что можно попробовать оборачивать обычную группировку сверху еще окном.
...
Рейтинг: 0 / 0
21.02.2017, 19:41
    #39408737
ora601
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обычная группировка и группировка в окне на одном уровне
GroupByOver,
Подзапросом.

Код: plsql
1.
2.
3.
select lvl, sum(val), (SELECT sum(val) from t) sum
FROM t
GROUP BY lvl,3
...
Рейтинг: 0 / 0
22.02.2017, 07:34
    #39408856
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обычная группировка и группировка в окне на одном уровне
ora601Подзапросом.GroupByOverвопрос немного другой.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Обычная группировка и группировка в окне на одном уровне / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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