【问题标题】:How to calculate running total in SQL如何在 SQL 中计算运行总计
【发布时间】:2016-06-30 06:44:51
【问题描述】:

我有给定格式的数据集 这是一个月级别的数据以及每个月的工资。 我需要计算每个月末的累计工资。我该怎么做呢

+----------+-------+--------+---------------+
| 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 |
+----------+-------+--------+---------------+

我需要计算累计列的运行总列。如何在 SQL 中高效地做事?

【问题讨论】:

标签: sql oracle


【解决方案1】:

您可以在OVER 子句中使用SUMORDER BY 子句:

SELECT Account, Month, Salary, 
       SUM(Salary) OVER (PARTITION BY Account ORDER BY Month) AS RunningTotal
FROM mytable

【讨论】:

    猜你喜欢
    • 2023-03-23
    • 1970-01-01
    • 2010-10-26
    • 2021-12-20
    • 1970-01-01
    • 2010-10-14
    • 1970-01-01
    相关资源
    最近更新 更多