zoukankan      html  css  js  c++  java
  • SQL技术内幕-4 row_number() over( partition by XX order by XX)的用法(区别于group by 和order by)




    partition by关键字是分析性函数的一部分,它和聚合函数不同的地方在于它能返回一个分组中的多条记录,而聚合函数一般只有一条反映统计值的记录,partition by用于给结果集分组,如果没有指定那么它把整个结果集作为一个分组 create database StudentDB go use StudentDB go create table Student --学生成绩表 ( id int, --主键 Grade int, --班级 Score int --分数 ) go insert Student select 1,1,88 union all select 2,1,66 union all select 3,1,75 union all select 4,2,30 union all select 5,2,70 union all select 6,2,80 union all select 7,2,60 union all select 8,3,90 union all select 9,3,70 union all select 10,3,80 go --所有学生信息 select * from Student id Grade Score ----------- ----------- ----------- 1 1 88 2 1 66 3 1 75 4 2 30 5 2 70 6 2 80 7 2 60 8 3 90 9 3 70 10 3 80 (10 行受影响) --不分班按学生成绩排名 select *,ROW_NUMBER() over(order by Score desc) as Sequence from Student id Grade Score Sequence ----------- ----------- ----------- -------------------- 8 3 90 1 1 1 88 2 6 2 80 3 10 3 80 4 3 1 75 5 9 3 70 6 5 2 70 7 2 1 66 8 7 2 60 9 4 2 30 10 (10 行受影响) --分班后按学生成绩排名 select *,row_number() over(partition by Grade order by Score desc) as Sequence from Student id Grade Score Sequence ----------- ----------- ----------- -------------------- 1 1 88 1 3 1 75 2 2 1 66 3 6 2 80 1 5 2 70 2 7 2 60 3 4 2 30 4 8 3 90 1 10 3 80 2 9 3 70 3 (10 行受影响)

      

    【转载】原文章来自于   http://www.cnblogs.com/sanlang/archive/2009/03/24/1420360.html
    【转载】原文章来自于   http://www.cnblogs.com/sanlang/archive/2009/03/24/1420360.html
  • 相关阅读:
    python 文件和路径操作函数小结
    python文件处理
    jquery操作select
    ubuntu 安装ODOO时的python的依赖
    XML-RPC 实现C++和C#交互
    C#接收xmlrpc接口返回哈希表格式
    XmlRpc with C#/Java【转】
    OpenERP 的XML-RPC的轻度体验+many2many,one2many,many2one创建方式
    在Ubuntu Server上源码安装OpenERP 8.0,并配置wsgi和nginx运行环境
    C# 文件与二进制互转数据库写入读出
  • 原文地址:https://www.cnblogs.com/alphafly/p/4233759.html
Copyright © 2011-2022 走看看