算出累积总计是一个常见的需求,可惜以 SQL 并没有一个很直接的方式达到这个需求。要以 SQL 算出累积总计,基本上的概念与列出排名类似:第一是先做个表格自我连结 (self join),然后将结果依序列出。在做列出排名时,我们算出每一行之前 (包含那一行本身) 有多少行数;而在做累积总计时,我们则是算出每一行之前 (包含那一行本身) 的总合。
题目内容大概为:employee
year salary
2000 1000
2001 2000
2002 3000
然后得到的结果为:
year salary
2000 1000
2001 3000
2002 6000
解答:
select A.year Sum(B.salary) from employee A,employee B where A.year>=B.year group by A.year.
注意:在sql语句中使用集合函数之前要进行分组group by
其它内容都相对比较简单,故省略
浙公网安备 33010602011771号