日期:2014-05-17  浏览次数:20764 次

求教2个SQL面试题
《1》
表数据:
2005-05-09 胜
2005-05-09 胜

2005-05-09 负
2005-05-09 负
2005-05-10 胜
2005-05-10 负
2005-05-10 负

要求统计日期胜负数:
显示结果如下
       胜   负
2005-05-09    2    2
2005-05-10    1    2

《2》
表数据
Year Salary
2000 1000
2001 2000
2002 3000
2003 4000

要求查询结果如下:
Year     Salary
2000     1000
2001     3000
2002     6000
2003     10000
即salary按年求总和

------解决方案--------------------
1.SELECT t_date,SUM(DECODE(flag,'胜',1)),SUM(DECODE(flag,'负',1)) FROM t GROUP BY t_date
2.SELECT year, SUM(salary) OVER(ORDER BY year) FROM t
------解决方案--------------------


第一个,考你的行转列
第二个,考你的分析函数

答案在楼上