功能:确定在应用关联的窗口函数之前,行集的分区和排序。
适用范围: 排名窗口函数、聚合窗口函数
参数:
PARTITION BY
将结果集分为多个分区。窗口函数分别应用于每个分区,并为每个分区重新启动计算。
value_expression
指定对相应 FROM 子句生成的行集进行分区所依的列。<value_expression> 只能引用 FROM 子句可用的列。不能引用选择列表中的表达式或别名。
<ORDER BY 子句>
指定应用排名窗口函数的顺序。
例子:
create table test(a char(10),b char(10),c int,d int)
insert into test values('a','a',10,20)
insert into test values('a','b',10,20)
insert into test values('a','c',10,20)
insert into test values('a','d',10,20)
insert into test values('b','a',20,40)
insert into test values('b','b',20,40)
insert into test values('b','c',20,40)
insert into test values('b','d',20,40)
select * from test
select *,sum(c) over(partition by a) as sum1,sum(c) over(partition by a,b) as sum2,sum(c) over() as sum3 from test
order by a,b
适用范围: 排名窗口函数、聚合窗口函数
参数:
PARTITION BY
将结果集分为多个分区。窗口函数分别应用于每个分区,并为每个分区重新启动计算。
value_expression
指定对相应 FROM 子句生成的行集进行分区所依的列。<value_expression> 只能引用 FROM 子句可用的列。不能引用选择列表中的表达式或别名。
<ORDER BY 子句>
指定应用排名窗口函数的顺序。
例子:
create table test(a char(10),b char(10),c int,d int)
insert into test values('a','a',10,20)
insert into test values('a','b',10,20)
insert into test values('a','c',10,20)
insert into test values('a','d',10,20)
insert into test values('b','a',20,40)
insert into test values('b','b',20,40)
insert into test values('b','c',20,40)
insert into test values('b','d',20,40)
select * from test
select *,sum(c) over(partition by a) as sum1,sum(c) over(partition by a,b) as sum2,sum(c) over() as sum3 from test
order by a,b