powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Переписать запрос
2 сообщений из 27, страница 2 из 2
Переписать запрос
    #39437425
isdenno
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Rouga,
вот так можно уменьшить в кол-во ф1
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select * 
  from 
  (select * 
     from test_tab
    )
pivot (sum(case when f2 between 1 and 100 then f2 else 0 end) f2_sum, 
       sum(case when f3 between 1 and 100 then f3 else 0 end) f3_sum, 
       sum(case when f4 between 1 and 100 then f4 else 0 end) f4_sum 
       for (f1) in (1, 2)
      )    
...
Рейтинг: 0 / 0
Переписать запрос
    #39437618
Embr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для сумм можно case вынести во вложенный селект в виде коэффициента 0 или 1, на который потом надо просто умножать.
Получается весьма лаконично.
Код: plsql
1.
2.
select sum(is_dummy*amount) as dummy_amount
from (select case when dummy = 'X' then 1 else 0 end as is_dummy,  5 as amount, d.* from dual d)
...
Рейтинг: 0 / 0
2 сообщений из 27, страница 2 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Переписать запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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