关于rank、dense_rank、ROW_NUMBER及OVER(PARTITION BY)、OVER(ORDER BY)的一些用法
2015-06-01 14:42
639 查看
CREATE TABLE t_harry ( id int NOT NULL, Number varchar(255) DEFAULT NULL, ChannelID varchar(255) DEFAULT NULL, TimeStamp datetime DEFAULT NULL, PRIMARY KEY (id) ) ; INSERT INTO t_harry VALUES ('1', 'Group3', '3', '2015-05-27 00:00:00'); INSERT INTO t_harry VALUES ('2', 'Group2', '5', '2015-05-23 00:00:00'); INSERT INTO t_harry VALUES ('3', 'Group1', '4', '2015-05-23 00:00:00'); INSERT INTO t_harry VALUES ('4', 'Group2', '3', '2015-05-29 00:00:00'); INSERT INTO t_harry VALUES ('7', 'Group1', '2', '2015-05-30 00:00:00'); SELECT B.* FROM t_harry B LEFT JOIN ( SELECT Number,max(ChannelID) [MaxID] FROM t_harry GROUP BY Number ) A ON B.Number=A.Number ORDER BY A.MaxID DESC , B.ChannelID DESC SELECT rank() OVER(ORDER BY TimeStamp) [Rank], dense_rank() OVER(ORDER BY TimeStamp) [dense_rank], ROW_NUMBER() OVER(ORDER BY TimeStamp) [Row_Number], ROW_NUMBER() OVER(PARTITION BY Number ORDER BY TimeStamp) [Row_Number], * FROM t_harry ORDER BY max(Channelid) OVER (PARTITION BY Number) DESC, channelid DESC DROP TABLE t_harry
相关文章推荐
- 在eclipse程序中设置的断点上有一个斜杠,正常启动debug不能够跳转到debug页面,怎么解决
- CS小分队第二阶段冲刺站立会议(6月1日)
- Mysql 数据库修复
- Ubuntu 14.04下Sublime text2解压版无法启用fcitx中文输入法的问题
- 调用 API 函数-ShellExecute实例
- IIC 针对EEPROM的驱动代码
- 服务器重启后,启动SAP ERP的步骤
- iOS shareSDK进行分享
- mariadb-galera-10.0.19 on centos 6.5
- 浅谈C++多态性
- sed 命令
- Android 应用性能优化(一)JAVA代码优化
- OC语言疯狂讲义学习笔记
- java.lang.OutOfMemoryError: Java heap space
- mysql notifier 1.1.6 root element is missing
- 42.截屏保存到相册
- Virtualbox虚拟机安装CentOS 6.5图文详细教程
- 链接注入(便于跨站请求伪造)(AppScan扫描结果)
- vim recording的使用方法
- win7 管理员权限