【转】成绩单、业绩表SQL(一个纵表变横表 一个用开窗函数)

原文地址:http://blog.youkuaiyun.com/shenghuiping2001/article/details/4593914

原始表: 

name            course              score 
----------------------------------------- 
张三            语文                80 
张三            数学                75 
张三            外语                60 
李四            语文                90 
李四            数学                85 
李四            外语                70 
王五            语文                95 
王五            数学                80 
王五            外语                75 


结果表: 

姓名        语文        数学        外语 
----------------------------------------- 
张三        80          75          60 
李四        90          85          70 
王五        95          80          75 

========================================= 

原始表: 

city          volume 
--------------------- 
北京          16000 
东莞          5000 
上海          200000 
广州          8500 
湛江          100000 

结果表: 

城市          排名 
--------------------- 
北京          3 
东莞          5 
上海          1 
广州          4 
湛江          2

SQL code 1:

select name, sum(case when course = "语文" then score else 0 end) "语文", sum(case whencourse = "数学" then score else 0 end) "数学", sum(case when course = "外语" then scoreelse 0 end) "外语" from table1 group by name; select city, row_number() over(order byvolume desc) "排名" from table2;
SQL code 2:
SELECT name,SUM(DECODE(course,'语文',score,0)),SUM(DECODE(course,'数学',score,0)),SUM(DECODE(course,'外语',score,0)) FROM tb1 GROUP BY name; SELECT city "城市",rownum "排名" FROM tb2 ORDER BY volume DESC
SQL code 3:
select name,max(case when course='语文' then score end) "语文", max(case when course='数学' thenscore end) "数学", max(case when course='外语' then score end) "外语" from table_name group byname;
 
select city "城市",row_number() over(order by volume desc) as "排名" from ww0924 order by rowid;

转载于:https://www.cnblogs.com/mezero/archive/2011/12/06/2278403.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值