sql server 中的分区函数用法(partition by 字段)

摘要:
partitionby关键字是分析性函数的一部分,它和聚合函数不同的地方在于它能返回一个分组中的多条记录,而聚合函数一般只有一条反映统计值的记录,partitionby用于给结果集分组,如果没有指定那么它把整个结果集作为一个分组createdatabaseStudentDBgouseStudentDBgocreatetableStudent--学生成绩表(idint,--主键Gradeint,--

partitionby关键字是分析性函数的一部分,它和聚合函数不同的地方在于它能返回一个分组中的多条记录,而聚合函数一般只有一条反映统计值的记录,partitionby用于给结果集分组,如果没有指定那么它把整个结果集作为一个分组

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 行受影响)

免责声明:文章转载自《sql server 中的分区函数用法(partition by 字段)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇MySQL数据库创建表报错的解决方案CentOS7 下使用 Nginx下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

mysql 查询字段为空显示默认值

     IFNULL() 函数用于判断第一个表达式是否为 NULL,如果为 NULL 则返回第二个参数的值,如果不为 NULL 则返回第一个参数的值。   IFNULL() 函数语法格式为:  IFNULL(expression, alt_value)   SELECT IFNULL(NULL, "zs"); 结果为 zs   SELECT IFNUL...

MySQL结果集 数据查询(重点)

如下: SELECT * FROM product;-- 查询所有列 SELECT pro_id,pro_name FROM product;-- 查询指定列 SELECT pro_name AS '产品名称',price FROM product;-- 添加常量列 把pro_id改为“产品名称”(添加常量列只是显示这个名称,查询后还是...

SQL基本语法总结

一、基础 模式定义了数据如何存储、存储什么样的数据以及数据如何分解等信息,数据库和表都有模式。 主键的值不允许修改,也不允许复用(不能使用已经删除的主键值赋给新数据行的主键)。 SQL(Structured Query Language),标准 SQL 由 ANSI 标准委员会管理,从而称为 ANSI SQL。各个 DBMS 都有自己的实现,如 PL/...

mysql存储过程语法及实例

存储过程如同一门程序设计语言,同样包含了数据类型、流程控制、输入和输出和它自己的函数库。 --------------------基本语法-------------------- 一.创建存储过程create procedure sp_name()begin.........end 二.调用存储过程1.基本语法:call sp_name()注意:存储过程名...

T-SQL函数及用法--转

转自http://www.cnblogs.com/qixuejia/archive/2010/07/14/1777105.html 1.聚合函数 (1)AVG 函数功能返回组中值的平均值。空值将被忽略 语法AVG([ ALL | DISTINCT ] expression) (2)MAX 函数功能返回表达式的最大值 语法MAX([ ALL | DISTIN...

【pytorch】pytorch基础

一、张量数据类型 1.1 pytorch与python数据类型对比 python pytorch Int IntTensor of size() float FloatTensor of size() Int array IntTensor of size [d1,d2,…] Float array FloatTensor of si...