sqlserver中分区函数 partition by的用法
partition? by关键字是分析性函数的一部分,它和聚合函数(如group by)不同的地方在于它能返回一个分组中的多条记录,而聚合函数一般只有一条反映统计值的记录, partition? by用于给结果集分组,如果没有指定那么它把整个结果集作为一个分组。 partition by 与group by不同之处在于前者返回的是分组里的每一条数据,并且可以对分组数据进行排序操作。后者只能返回聚合之后的组的数据统计值的记录。 ? Demo? 数据库表结构?学生成绩表?UserGrade Id ? ? ? ?int ? ? ? ? ? ? ?Checked ? ? 主键Id 01、把每个人学生的成绩按照升序排名 (思路:根据学生姓名分组 根据每个人成绩排序) sql语句? select *,ROW_NUMBER() over( partition by Name order by Score )排名 查询结果 Id Name Course Score 排名 02、把每个学科的成绩分别进行排名 (思路:根据学科分组 根据成绩排序) sql语句? from UserGrade Id Name Course Score 排名 1002 张三 数学 90 1 1004 李四 数学 60 2 1007 王五 数学 30 3 1001 李四 英语 100 1 1008 张三 英语 60 2 1003 王五 英语 50 3 1000 张三 语文 80 1 1005 李四 语文 80 2 1006 王五 语文 50 3 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |