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

Откуда:
Сообщений: 6
Наверное, вопрос давольно простой, но все же.
Есть набор строк из 2-х полей Table1(field1,field2), упорядоченный по первой колонке
----
('a',100),
('b',200),
('c',300),
...

Как из него запросом получить Table2:
('a',100),
('b',300),
('c',600),
...
т.е. значение field2 равно сумме всех предыдущих значений field2?
Заранее спасибо.
18 дек 06, 13:28    [3549808]     Ответить | Цитировать Сообщить модератору
 Re: как сделать одним запросом  [new]
Elic
Member

Откуда:
Сообщений: 29976
sum(field2) over (order by field1)
RTFM Analytic Functions (FAQ)
18 дек 06, 13:31    [3549837]     Ответить | Цитировать Сообщить модератору
 Re: как сделать одним запросом  [new]
Kovalchuk Vitaly V
Member

Откуда: ненька Україна
Сообщений: 463
SQL> select r1,sum(r2) over ( order by r1 range unbounded  PRECEDING) r
  2  from (
  3    select 'a' r1,100 r2 from dual union all
  4    select 'b',200 from dual union all
  5    select 'c',300 from dual);

R         R2
- ----------
a        100
b        300
c        600
18 дек 06, 13:37    [3549886]     Ответить | Цитировать Сообщить модератору
 Re: как сделать одним запросом  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 116077
Kovalchuk Vitaly V
SQL> select r1,sum(r2) over ( order by r1 
 range unbounded  PRECEDING
) r
  2  from (
  3    select 'a' r1,100 r2 from dual union all
  4    select 'b',200 from dual union all
  5    select 'c',300 from dual);

R         R2
- ----------
a        100
b        300
c        600


На выделенном можно сэкономить
18 дек 06, 13:42    [3549929]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить