数据表如下
年份 成交人 成交量 成交量占比
2010 AA 5487418.99 18.04%
2010 BB 2405000 7.91%
2010 CC 2107675 6.93%
2010 DD 2054861 6.76%
2010 EE 1491563 4.90%
2010 FF 1315405 4.32%
2010 GG 1289639 4.24%
2010 HH 1037169 3.41%
2010 II 1028870 3.38%
2009 AA 4089068 13.42%
2009 BB 2556838 8.39%
2009 GG 1883887 6.18%
2009 JJ 1501866 4.93%
2009 II 1439870 4.73%
2009 EE 1368463 4.49%
2009 KK 1361392 4.47%
2009 LL 1223418 4.02%
2009 FF 1218778 4.00%
2009 DD 1123961 3.69%
2008 AA 2133323 12.94%
2008 HH 1234930 7.49%
2008 GG 1177554 7.14%
2008 FF 1144131 6.94%
2008 LL 937174 5.68%
2008 MM 795547 4.83%
2008 BB 687819 4.17%
2008 CC 671670 4.07%
2008 NN 637940 3.87%
2008 KK 622337 3.77%有几个问题:
1、需要按照年份对成交人增加一列排名
2、按照年份选出排名前几名的,比如选出每年的前5名
3、把表中3年的数据重新整合成一个新表,按照这几年成交人的平均成交量降序来排列
4、多加一列标注每年排名的变化
比如
成交人 年份1 排名1 成交量1 成交量占比1 年份2 排名2 排名变化 成交量2 成交量占比2 ...总排名 平均成交量 平均成交量占比请问下能否用一句或者很少的语句达到上面的功能呢??谢谢大家
年份 成交人 成交量 成交量占比
2010 AA 5487418.99 18.04%
2010 BB 2405000 7.91%
2010 CC 2107675 6.93%
2010 DD 2054861 6.76%
2010 EE 1491563 4.90%
2010 FF 1315405 4.32%
2010 GG 1289639 4.24%
2010 HH 1037169 3.41%
2010 II 1028870 3.38%
2009 AA 4089068 13.42%
2009 BB 2556838 8.39%
2009 GG 1883887 6.18%
2009 JJ 1501866 4.93%
2009 II 1439870 4.73%
2009 EE 1368463 4.49%
2009 KK 1361392 4.47%
2009 LL 1223418 4.02%
2009 FF 1218778 4.00%
2009 DD 1123961 3.69%
2008 AA 2133323 12.94%
2008 HH 1234930 7.49%
2008 GG 1177554 7.14%
2008 FF 1144131 6.94%
2008 LL 937174 5.68%
2008 MM 795547 4.83%
2008 BB 687819 4.17%
2008 CC 671670 4.07%
2008 NN 637940 3.87%
2008 KK 622337 3.77%有几个问题:
1、需要按照年份对成交人增加一列排名
2、按照年份选出排名前几名的,比如选出每年的前5名
3、把表中3年的数据重新整合成一个新表,按照这几年成交人的平均成交量降序来排列
4、多加一列标注每年排名的变化
比如
成交人 年份1 排名1 成交量1 成交量占比1 年份2 排名2 排名变化 成交量2 成交量占比2 ...总排名 平均成交量 平均成交量占比请问下能否用一句或者很少的语句达到上面的功能呢??谢谢大家
解决方案 »
- 数据库中写多表查询的存储过程时中间可以插入事务?
- 动态查询月份表sql可以做吗?
- 问一个Insert 语句问题
- 如何让服务器监听SqlServer的1433端口?
- 如何用c#.net程序在sql2000中添加备份设备的新设备
- 7102 20 SQL Server 内部错误。文本管理器无法继续执行当前语句(在线等待)
- 一个关于SQL的查询问题,比较难,希望高手指点(急,在线等待。。。。)
- 什么时候需要在表名上加方括号?(一个初学者的问题)
- DBEXPRESS 连接MSSQLSERVER 在正常读的情况下,突然死机会损坏数据库吗?
- 谁知道大富翁论坛的网址?谢谢了
- SQL格式问题
- sql创建列后产生189个列,还不到1024列,为什么会有错误提示呢
--1
select row_number() over(partition by 年份 order by 成交量) as 名次 from tb
--2
select * from
(select row_number() over(partition by 年份 order by 成交量) as 名次 from tb) a where 名次<5
--3
select 成交人,avg(成交量) as 平均 from tb order by 2--ps第四个没明白