最后一行中的Sum列

时间:2017-09-12 11:28:10

标签: sql sql-server

我需要得到按年份,月份和日期分组的总列数列的总和,但总和必须在"最后一个"小组的一行

Year  Month   Day   Value  Total

2017    5     10     10      0
2017    5     21     5       0
2017    5     28     3       18
2017    6     15     8       8
2017    7     14     9       0
2017    7     18     2       11

我该怎么做?

1 个答案:

答案 0 :(得分:0)

您似乎想要每月最后一条记录的总数。您可以使用ANSI标准窗口函数执行此操作:

select t.*,
       (case when row_number() over (partition by year, month order by day desc) = 1
             then sum(value) over (partition by year, month)
             else 0
        end) as total
from t;