mysql参考https://www.cnblogs.com/zhanglixuan/p/10651275.html
mssql参考https://www.cnblogs.com/eagle-xie/articles/6259499.html
Oracle参考http://blog.itpub.net/775341/viewspace-711570/
有表Table内容如下
COL1 COL2
1 1
2 1
3 2
3 1
4 1
4 2
5 2
6 2
分析功能:列出Col2分组后根据Col1排序,并生成数字列。比较实用于在成绩表中查出各科前几名的信息。
SELECT a.*,RANK() OVER(PARTITION BY col2 ORDER BY col1) "Rank" FROM table a;
结果如下:
COL1 COL2 Rank
1 1 1
2 1 2
3 1 3
4 1 4
3 2 1
4 2 2
5 2 3
6 2 5
字段分组有几种?如果只有1,2的话分开写用union all 合并一下就好了