Xin lỗi vì tiêu đề xấu, tôi không chắc đâu là tiêu đề tốt cho việc này.
Đây hiện là (chế độ xem đơn giản hóa) dữ liệu tôi đang làm việc với
Agent | Commission
---------|------------
Smith | 100
Neo | 200
Morpheus | 300
Tôi cần tính tỷ lệ phần trăm của tổng hoa hồng, mỗi đại lý chịu trách nhiệm.
Vì vậy, đối với Đặc vụ Smith, Tỷ lệ phần trăm sẽ được tính là (Agent Smith's commission / Sum(commission)*100
Vì vậy, dữ liệu dự kiến của tôi sẽ là
Agent | Commission | % Commission
---------|---------------|---------------
Smith | 100 | 17
Neo | 200 | 33
Morpheus | 300 | 50
Tôi có một chức năng trả lại hoa hồng cho mỗi đại lý. Tôi có một chức năng khác trả về tỷ lệ phần trăm là (Commission/Sum(Commission))*100
. Vấn đề là Sum(commission)
được tính toán cho từng hàng và do truy vấn này sẽ được chạy trên Kho dữ liệu, bộ dữ liệu sẽ khá lớn (hiện tại, nó chỉ dưới 2000 bản ghi) và khá trung thực, một cách tiếp cận tồi (IMO ).
Có cách nào để Sum(Commission)
không tính toán cho mỗi hàng được tìm nạp không?
Tôi đã suy nghĩ điều gì đó trên các dòng của truy vấn 2 phần, phần đầu tiên sẽ tìm nạp sum(commission)
vào một biến / loại gói và phần thứ hai sẽ đề cập đến giá trị được tính toán trước này, nhưng tôi không chắc làm thế nào tôi có thể thực hiện được điều này.
Tôi bị giới hạn sử dụng SQL và tôi đang chạy trên Oracle 10g R2.