用示例说明 " 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
扫描二维码关注公众号,回复:
1369485 查看本文章
序号 | 组内成员序号 | 组名称 | 组成员名称 |
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、查询分组中的前几条数据