分组统计--SQL面试题

一道SQL面试题,题目很简单。
年份          工资         
----------- -----------
2000        1000
2001        2000
2002        3000
2003        4000
这里有一份公司表,一句SQL查询出下列结果
年份          工资         
----------- -----------
2000        1000
2001        3000
2002        6000
2003        10000
--author:【DBA】小七

set nocount on
declare @t table (年份 int ,工资 int)
INSERT INTO @t 
SELECT 2000,1000 union all
select 2001,2000 UNION ALL
select 2002,3000 UNION ALL
select 2003,4000  
SELECT * FROM @t

select a.年份, sum(b.工资) as 工资 from @t a,@t b where a.年份>=b.年份 group by a.年份

select 年份, (select SUM(工资) from @t where 年份 <= a.年份) 工资 from @t a  --M提供的另外一个写法,呵呵


set nocount off




年份          工资          
----------- ----------- 
2000        1000
2001        2000
2002        3000
2003        4000

年份          工资          
----------- ----------- 
2000        1000
2001        3000
2002        6000
2003        10000 
posted @ 2010-10-15 20:22  【DBA】小七  阅读(498)  评论(0编辑  收藏  举报