CREATE TABLE test ( a INT, b INT, c CHAR ) INSERT INTO test VALUES(1,3,'E') INSERT INTO test VALUES(2,4,'A') INSERT INTO test VALUES(3,2,'D') INSERT INTO test VALUES(3,5,'B') INSERT INTO test VALUES(4,2,'C') INSERT INTO test VALUES(2,4,'B')
a b c
----------- ----------- ----
1 3 E
2 4 A
3 2 D
3 5 B
4 2 C
2 4 B
(6 行受影响)
1、整个结果集是一个分组,以a进行排名
a b c rank
----------- ----------- ---- --------------------
1 3 E 1
2 4 A 2
2 4 B 2
3 2 D 4
3 5 B 4
4 2 C 6
(6 行受影响)
2、整个结果集是一个分组,以b进行排名
a b c rank
----------- ----------- ---- --------------------
3 2 D 1
4 2 C 1
1 3 E 3
2 4 A 4
2 4 B 4
3 5 B 6
(6 行受影响)
3、以a,b进行分组,在每个组内以b进行排名。分了5个组,第2行跟第3行是一个组,其他的每行是一个组。在第2行与第3行的组内以b排名,并列为1
a b c rank
----------- ----------- ---- --------------------
1 3 E 1
2 4 A 1
2 4 B 1
3 2 D 1
3 5 B 1
4 2 C 1
(6 行受影响)
4、以a,b进行分组,在每个组内以c进行排名。分了5个组,第2行跟第3行是一个组,其他的每行是一个组。在第2行与第3行的组内以c排名,由于c列一个是A,一个是B,所以Rank分别为1、2。
a b c rank
----------- ----------- ---- --------------------
1 3 E 1
2 4 A 1
2 4 B 2
3 2 D 1
3 5 B 1
4 2 C 1
(6 行受影响)
总结:1、partition by用于给结果集分组,如果没有指定那么它把整个结果集作为一个分组。
2、Rank 是在每个分组内部进行排名的。
转自:http://www.cnblogs.com/mycoding/archive/2010/05/29/1747065.html
相关推荐
sql基本用法sql基本用法sql基本用法sql基本用法sql基本用法sql基本用法
SQL常用命令使用方法 数据记录筛选 更新数据记录 删除数据记录 添加数据记录
SQL Server使用方法SQL Server使用方法SQL Server使用方法
SQLServer2005使用方法
学会了里边的东西 基本上你就算出师了 SQL经典游标使用方法SQL经典游标使用方法
SQL join 完全用法 SQL join 完全用法 学习sql join
SQL触发器的使用方法,SQL触发器的使用方法,SQL触发器的使用方法,SQL触发器的使用方法
SQLServer动态SQL语句的用法
SQL语句 SELECT LIKE like用法详解 包含你不知道的用法 在SQL结构化查询语言中,LIKE语句有着至关重要的作用。
sql用法大全,包含sql多种基本用法 包含sql基础用法,提升用法。。。。
一个简单的用法一个简一个简单的用法一个简单的用法单的用法一个简单的用法一个简单的用法一个简单的用法一个简单的用法一个简单的用法一个简单的用法一个简单的用法一个简单的用法一个简单的用法
sql-jion 用法
sql数据库使用,sql数据库使用,sql数据库使用sql数据库使用,,
SQL常用命令使用方法
SQL中group by的详细用法
SQLTracker是监视使用Oracle数据库的应用程序,支持win7,win10 64位
雖然SQLserver有rank() over,Oracle卻沒有,而且以此為基本方法可以變化為多個相關的SQL,比如 update 更新,order by 排序 等等
本SQL文件是在多年的工作经验中总结后编写的;因为业务复杂的需要;需要我们考虑性能、效率、精简的实现我们的SQL代码;该SQL技巧文档希望对你有很大的帮助。