常用窗口函数

常用窗口函数

创建表

CREATE TABLE powersi.t1 (
	deptno varchar(100) NULL,
	ename varchar(100) NULL,
	sal int4 NULL
)

插入数据

INSERT INTO powersi.t1
(deptno, ename, sal)
VALUES('20', 'ford', 3000);
INSERT INTO powersi.t1
(deptno, ename, sal)
VALUES('20', 'JONES', 2975);
INSERT INTO powersi.t1
(deptno, ename, sal)
VALUES('20', 'ADAMS', 1100);
INSERT INTO powersi.t1
(deptno, ename, sal)
VALUES('20', 'SMITH', 800);
INSERT INTO powersi.t1
(deptno, ename, sal)
VALUES('20', 'SMITH2', 900);
INSERT INTO powersi.t1
(deptno, ename, sal)
VALUES('10', 'jaccka', 5000);
INSERT INTO powersi.t1
(deptno, ename, sal)
VALUES('10', 'king', 5000);
INSERT INTO powersi.t1
(deptno, ename, sal)
VALUES('10', 'clark', 2450);
INSERT INTO powersi.t1
(deptno, ename, sal)
VALUES('10', 'welan', 2450);
INSERT INTO powersi.t1
(deptno, ename, sal)
VALUES('10', 'tebage', 1300);
INSERT INTO powersi.t1
(deptno, ename, sal)
VALUES('10', 'miller', 1300);

原表数据

select * from powersi.t1

在这里插入图片描述

rank

select 
deptno ,
ename ,
sal ,
rank() over ( order by sal desc) as rank
from powersi.t1 t 

在这里插入图片描述

row_number

select 
deptno ,
ename ,
sal ,
row_number () over ( order by sal desc) as rank
from powersi.t1

在这里插入图片描述

dense_rank

select 
deptno ,
ename ,
sal ,
dense_rank () over ( order by sal desc) as rank
from t1 t 

在这里插入图片描述

lag

select 
deptno ,
ename ,
sal ,
lag (sal) over ( order by ename ) as pre_sal,
sal - lag (sal) over ( order by ename ) as sal_diff
from t1 t

在这里插入图片描述

sum

select 
deptno ,
ename ,
sal ,
sum (sal) over (partition by deptno  ) as rank
from t1 t

在这里插入图片描述

ntile

select 
deptno ,
ename ,
sal ,
ntile (5) over (order by sal  ) as rank
from t1 t

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值