[MSSQL]【SQL SERVER 2005+版本行转列示例】(2012年1-8月水源槑党25强榜单新鲜出炉)
2013-02-05 13:08
447 查看
在CSDN社区 MS-SQLSERVER板块,关于行转列的问题,层出不穷,之前dawugui,roy_88等高手都多次整理过,我就不再整理了,只是给出一个示例,以供大家参考。
槑党是CSDN水源2012年新出现的,这里对2012年1-8月的相关数据,简单的统计一下。
数据采集于下面地址:
http://forum.csdn.net/PointForum/Forum/ExpertTopList.aspx?flg=bigMonth&forumid=d5ce81ef-7dab-4abb-a7ca-ac03342ae03b&bigclassid=d5ce81ef-7dab-4abb-a7ca-ac03342ae03b&smallclassid=9231e8e0-b9bc-4c51-b364-ba68665814cc&date=2012-6&year=2012&month=6
统计只是在扩充话题板块TOP100名单中出现的用户,以昵称中出现槑党字样的为样本。
数据显示槑党在2012年1-8月期间,TOP100中有的相关数据共得216951分。
行转列后的统计结果为:
数据脚本我已经上传到了下载频道,有感兴趣的朋友,可以去免费下载。
地址:
相关数据脚本下载地址(含创建表的脚本和插入数据的脚本,无需积分)
槑党是CSDN水源2012年新出现的,这里对2012年1-8月的相关数据,简单的统计一下。
数据采集于下面地址:
http://forum.csdn.net/PointForum/Forum/ExpertTopList.aspx?flg=bigMonth&forumid=d5ce81ef-7dab-4abb-a7ca-ac03342ae03b&bigclassid=d5ce81ef-7dab-4abb-a7ca-ac03342ae03b&smallclassid=9231e8e0-b9bc-4c51-b364-ba68665814cc&date=2012-6&year=2012&month=6
统计只是在扩充话题板块TOP100名单中出现的用户,以昵称中出现槑党字样的为样本。
数据显示槑党在2012年1-8月期间,TOP100中有的相关数据共得216951分。
行转列后的统计结果为:
数据脚本我已经上传到了下载频道,有感兴趣的朋友,可以去免费下载。
地址:
相关数据脚本下载地址(含创建表的脚本和插入数据的脚本,无需积分)
--SQL SERVER 2005+ 静态行转列示例 select row_number() over (order by (select sum(score) from dduser where username=b.username) desc) as 总排名, (select sum(score) from dduser where username=b.username) as 总得分, userDisplay as 昵称, username as 账号, max(isnull('第'+ltrim([1])+'名','')) as [1月], max(isnull('第'+ltrim([2])+'名','')) as [2月], max(isnull('第'+ltrim([3])+'名','')) as [3月], max(isnull('第'+ltrim([4])+'名','')) as [4月], max(isnull('第'+ltrim([5])+'名','')) as [5月], max(isnull('第'+ltrim([6])+'名','')) as [6月], max(isnull('第'+ltrim([7])+'名','')) as [7月], max(isnull('第'+ltrim([8])+'名','')) as [8月] from (select * from dduser) a pivot (max(rank) for [month] in ([1],[2],[3],[4],[5],[6],[7],[8])) b group by username,userDisplay order by 总得分 desc --SQL SERVER 2005+ 动态行转列示例 declare @sql varchar(max),@colname varchar(max) select @sql = isnull(@sql + '],[' , '') + ltrim([month]) from dduser group by [month] set @sql = '[' + @sql + ']' select @colname= isnull(@colname+',','')+'max(isnull(''第''+ltrim([' +ltrim([month])+'])+''名'','''')) as ['+ltrim([month])+'月]' from dduser group by [month] exec ( 'select row_number() over (order by (select sum(score) from dduser where username=b.username) desc) as 总排名, (select sum(score) from dduser where username=b.username) as 总得分, userDisplay as 昵称, username as 账号, '+@colname+' from (select * from dduser) a pivot (max(rank) for [month] in ('+@sql+')) b group by username,userDisplay order by 总得分 desc')
相关文章推荐
- [MSSQL]【SQL SERVER 2005+版本行转列示例】(2012年1-8月水源槑党25强榜单新鲜出炉)
- 【SQL SERVER 2005+版本行转列示例】(2012年1-8月水源槑党25强榜单新鲜出炉)
- 微软一站式示例代码库(中文版)2011-02-18版本, Azure+Bing + Windows Phone + WCF + Silverlight示例新鲜出炉。
- 微软出最新SQL Server 2005 累积修补程序包(版本 9.0.2153)(2006-8-4),这是SP1之后的更新
- vista Enterprise版本sql server 2005 developer版本的安装
- 如何确定所运行的 SQL Server 2005 的版本
- SQL Server 2005 中的树形数据处理示例-1
- 1.8 SQL Server 2005的版本
- php 5.3连接mssql2005以上版本的数据库
- SQL Server 2005 累积修补程序包(版本 2153)已推出
- SQL Server 2005 SP3 支持的SMS/SCCM版本
- 如何在不提升用户权限的情况下,使普通用户执行xp_cmdshell存储过程2008-11-26 14:09:29SQL Server 2005 及之后的版本
- SQL SERVER 2005表分区创建示例
- SQL Server 2005使用基于行版本控制的隔离级别初探(2
- SQL Server 2005存储过程示例
- SQL Server 2005 的各种版本所支持的功能
- SQL Server 2005 版本说明
- MSSQL 2005 如何批量修改表的架构SQL Server - 海狼工作室 - 杨远 - 和讯博客
- 不同版本SQL Server 2005对BI的支持
- ZZ:SQL Server 2005 各个版本比较