Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Tổng số đang chạy theo các bản ghi được nhóm trong bảng

Bạn có thực sự cần bàn phụ không?

Bạn có thể lấy dữ liệu mình cần bằng một truy vấn đơn giản, rõ ràng bạn có thể tạo dưới dạng một dạng xem nếu bạn muốn nó xuất hiện như một bảng.

Điều này sẽ cung cấp cho bạn dữ liệu bạn đang tìm kiếm:

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

Thao tác này sẽ tạo một dạng xem để hiển thị cho bạn dữ liệu như thể nó là một bảng:

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

Nếu bạn thực sự cần bảng, bạn có nghĩa là bạn cần nó được cập nhật liên tục? hay chỉ là một lần tắt? Rõ ràng nếu đó là một trong số đó, bạn chỉ có thể "tạo bảng dưới dạng lựa chọn" bằng cách sử dụng truy vấn trên.

Dữ liệu kiểm tra tôi đã sử dụng là:

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;

chỉnh sửa:

quên thêm; bạn đã chỉ định rằng bạn muốn bảng được sắp xếp thứ tự - điều này không thực sự có ý nghĩa và khiến tôi nghĩ rằng bạn thực sự muốn nói rằng bạn muốn truy vấn / chế độ xem - thứ tự là kết quả của truy vấn bạn thực hiện, không phải thứ gì đó kế thừa trong bảng (bỏ qua Bảng có tổ chức lập chỉ mục và những thứ tương tự).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hàm SYS_GUID () trong Oracle

  2. regexp cho tất cả các ký tự có dấu trong Oracle

  3. Oracle SQL - Không tồn tại - chuỗi không tồn tại trong danh sách các giá trị

  4. Oracle Joins (Sql Joins) là gì?

  5. Cài đặt Oracle Client từ dòng lệnh mà không cần người dùng tương tác