Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Аналитическая функция  [new]
Lalilulelo
Member [заблокирован]

Откуда:
Сообщений: 67
Здравствуйте, нет ли возможности сделать такой запрос с помощью аналит. функции?

Есть таблица, например:
(select 700 amount, 'TAX' class
from dual
union all
select 123 amount, 'TAX' class
from dual
union all
select 6299 amount, 'REV' class
from dual
union all
select 1399 amount, 'REV' class
from dual)

Мне нужно написать селект, который выдаст 1 строчкуи 2 столбца. В первом столбце сумма всех TAX-ов, во втором сумма всех REV-ов.
9 сен 13, 15:14    [14814480]     Ответить | Цитировать Сообщить модератору
 Re: Аналитическая функция  [new]
Gustly
Member

Откуда:
Сообщений: 1426
Lalilulelo,

with a as (select 700 amount, 'TAX' class
from dual
union all
select 123 amount, 'TAX' class
from dual
union all
select 6299 amount, 'REV' class
from dual
union all
select 1399 amount, 'REV' class
from dual)
select sum(case when class='TAX' then amount end) TAXES,sum(case when class='REV' then amount end) REVES from a
9 сен 13, 15:21    [14814527]     Ответить | Цитировать Сообщить модератору
 Re: Аналитическая функция  [new]
Lalilulelo
Member [заблокирован]

Откуда:
Сообщений: 67
Так мне не подойдет, переписывать весь курсов придется. Есть ли возможность использовать over().
9 сен 13, 15:24    [14814552]     Ответить | Цитировать Сообщить модератору
 Re: Аналитическая функция  [new]
Lalilulelo
Member [заблокирован]

Откуда:
Сообщений: 67
Хотя подойдет, спс.
9 сен 13, 15:26    [14814569]     Ответить | Цитировать Сообщить модератору
 Re: Аналитическая функция  [new]
Ramin Hashimzade
Member

Откуда: Азербайджан, Баку
Сообщений: 9979
Блог
Lalilulelo,

select * from a
pivot (sum (amount) for class in ('TAX' tax,'REV' rev))
10 сен 13, 12:57    [14819475]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить