【SQL】partition by
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【SQL】partition by相关的知识,希望对你有一定的参考价值。
参考技术A 一旦各种开窗函数使用partition by后,需要明确的是,函数会对每个分区 独立处理 。
avg(page) over(partition by book) --- 假如整体是对阿利波特七部曲,则该函数是求出 每一部 哈利波特的平均页码数。
sql partition by
--不分班按学生成绩排名
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】partition by的主要内容,如果未能解决你的问题,请参考以下文章
How to Remove Table Partitioning in SQL Server