用示例说明   " row_number() over(partition by【column1】order by 【column2】)   " 的使用方法

 

 

1、执行前数据库表内容

 

序号

 

组名称

组成员名称

1305

 

XL

大专

1306

 

XL

本科

1307

 

XL

研究生及以上

1308

 

XL

其它

1309

 

XL

中专

1310

 

XL

高中

1514

 

ZJLX

身份证

1515

 

ZJLX

军官证

1501

 

ZY

公务员

1502

 

ZY

教师

1503

 

ZY

学生

1504

 

ZY

军人

1505

 

ZY

工人

1506

 

ZY

农民

1507

 

ZY

医务人员

1508

 

ZY

科技人员

1509

 

ZY

企事业单位行政/管理人员

1510

 

ZY

家庭主妇

1511

 

ZY

下岗职工

1512

 

ZY

退休人员

1801

 

ZZMM

党员

1802

 

ZZMM

团员

1803

 

ZZMM

民主党派

1804

 

ZZMM

群众

 

2、sql执行结果:

 

select *
from ( select t.paramid,
row_number() over(partition by t.paramcode order by t.paramid) 组内成员序号,
t.paramcode 组名称,
t.paramKey 组成员
from t_sysparam t) t2
where t2.组内成员序号 <= 3

 


 

序号

组内成员序号

组名称

组成员名称

1305

1

XL

大专

1306

2

XL

本科

1307

3

XL

研究生及以上

1514

1

ZJLX

身份证

1515

2

ZJLX

军官证

1501

1

ZY

公务员

1502

2

ZY

教师

1503

3

ZY

学生

1801

1

ZZMM

党员

1802

2

ZZMM

团员

1803

3

ZZMM

民主党派

 

 

概述用途:1、删除数据库表中重复数据 (删除‘组内成员序号’大于1的数据)2、查询分组中的前几条数据