Oracle
 sql >> база данни >  >> RDS >> Oracle

Текуща обща сума по групирани записи в табл

Наистина ли имате нужда от допълнителна маса?

Можете да получите необходимите данни с проста заявка, която очевидно можете да създадете като изглед, ако искате да изглежда като таблица.

Така ще получите данните, които търсите:

select 
    account, bookdate, amount, 
    sum(amount) over (partition by account order by bookdate) running_total
from t
/

Това ще създаде изглед, който да ви показва данните, сякаш са таблица:

create or replace view t2
as
select 
    account, bookdate, amount, 
    sum(amount) over (partition by account order by bookdate) running_total 
from t
/

Ако наистина имате нужда от таблицата, имате ли предвид, че се нуждаете от постоянно актуализиране? или само еднократно? Очевидно, ако е еднократно, можете просто да „създадете таблица като избрана“, като използвате горната заявка.

Тестовите данни, които използвах, са:

create table t(account number, bookdate date, amount number);

insert into t(account, bookdate, amount) values (1, to_date('20080101', 'yyyymmdd'), 100);

insert into t(account, bookdate, amount) values (1, to_date('20080102', 'yyyymmdd'), 101);

insert into t(account, bookdate, amount) values (1, to_date('20080103', 'yyyymmdd'), -200);

insert into t(account, bookdate, amount) values (2, to_date('20080102', 'yyyymmdd'), 200);

commit;

редактиране:

забравих да добавя; уточнихте, че искате таблицата да бъде подредена - това всъщност няма смисъл и ме кара да мисля, че наистина имате предвид, че искате заявката/изгледът - подреждането е резултат от заявката, която изпълнявате, а не нещо, което е присъщо на таблицата (пренебрегвайки индексираните организирани таблици и други подобни).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sql комбинира две колони в една променлива

  2. SQL вложена подзаявка, препращаща към колона за баби и дядовци

  3. Грешка в TNS Listener

  4. Как да използвате Distributed AD, за да намалите времето за корекция в Oracle EBS

  5. Oracle:Преобразуване на IPv4 адрес в число?