MySQL累计总计

时间:2016-08-11 16:56:26

标签: mysql running-total

公司每天奖励其中一名员工。数据保存在名为REWARDS的表中。如下面的示例数据所示,表中每天有一行具有以下结构:

(抱歉表格格式不佳)

REWARD_DATE EMP_ID  REWARD_AMT
1-Jan-15    101       400
2-Jan-15    102       300
3-Jan-15    101       700
4-Jan-15    102       500
5-Jan-15    103       100

您可以编写一个查询来报告运行总计如下吗?

REWARD_DATE #EMP    TOT_REWARD_AMT
1-Jan-15    1            400
2-Jan-15    2            700
3-Jan-15    2           1400
4-Jan-15    2           1900
5-Jan-15    3           2000

1 个答案:

答案 0 :(得分:2)

你可以这样做(现在略微简化):

SELECT b.rdate, COUNT(distinct a.eid) empcnt, SUM(a.amnt) total
FROM tbl a
INNER JOIN tbl b ON b.rdate>=a.rdate
GROUP BY b.rdate

如此处所示:http://sqlfiddle.com/#!9/f6871/2