ROW_NUMBER ( )去重并根据条件保留数据--开窗函数使用
ROW_NUMBER ( )函数的作用是,按照username 对数据进行分组,在每一个分组内,按照createtime 进行排序,排序之后,对每一个分组内的多行数据,标记上序号,序号从1开始,依次递增。标记的规则跟你排序的字段和规则相关。
·
ROW_NUMBER ( ) OVER ( PARTITION BY username ORDER BY createtime ASC )
ROW_NUMBER ( )函数的作用是,按照username 对数据进行分组,在每一个分组内,按照createtime 进行排序,排序之后,对每一个分组内的多行数据,标记上序号,序号从1开始,依次递增。标记的规则跟你排序的字段和规则相关。
去重并根据条件保留数据(这个测试了,没问题)
SELECT
rn.username,
rn.userid,
rn.createtime,
rn.r
FROM
(
SELECT
username,
userid,
createtime,
ROW_NUMBER ( ) OVER ( PARTITION BY usernameORDER BY createtime ASC ) r FROM erp.erp_employees) rn
WHERE rn.r = 1
rn.username,
rn.userid,
rn.createtime
表示都是你要查询的字段
根据条件删除重复的数据(这个没测试)
DELETE
FROM TABLE WHERE userid IN
(SELECT
rn.userid,
FROM
(
SELECT
username,
userid,
createtime,
ROW_NUMBER ( ) OVER ( PARTITION BY usernameORDER BY createtime ASC ) r FROM erp.erp_employees) rn
WHERE rn.r = 1)

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)