Helpex - Trao đổi & giúp đỡ Đăng nhập
3

Tôi có tập dữ liệu của mình ở định dạng đã cho Đó là dữ liệu mức tháng cùng với mức lương cho mỗi tháng. Tôi cần tính lương tích lũy cho mỗi cuối tháng. Tôi có thể làm cái này như thế nào

+----------+-------+--------+---------------+
| Account  | Month | Salary | Running Total |
+----------+-------+--------+---------------+
| a        |     1 |    586 |           586 |
| a        |     2 |    928 |          1514 |
| a        |     3 |    726 |          2240 |
| a        |     4 |    538 |           538 |
| b        |     1 |    956 |          1494 |
| b        |     3 |    667 |          2161 |
| b        |     4 |    841 |          3002 |
| c        |     1 |    826 |           826 |
| c        |     2 |    558 |          1384 |
| c        |     3 |    558 |          1972 |
| c        |     4 |    735 |          2707 |
| c        |     5 |    691 |          3398 |
| d        |     1 |    670 |           670 |
| d        |     4 |    838 |          1508 |
| d        |     5 |   1000 |          2508 |
+----------+-------+--------+---------------+

Tôi cần tính toán cột tổng đang chạy là cột tích lũy. Làm cách nào tôi có thể thực hiện hiệu quả trong SQL?

3 hữu ích 2 bình luận 15k xem chia sẻ
7

Bạn có thể sử dụng SUMvới ORDER BYmệnh đề bên trong OVERmệnh đề:

SELECT Account, Month, Salary, 
       SUM(Salary) OVER (PARTITION BY Account ORDER BY Month) AS RunningTotal
FROM mytable
7 hữu ích 0 bình luận chia sẻ
loading
Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ sql oracle , hoặc hỏi câu hỏi của bạn.

Có thể bạn quan tâm

loading