【SQL语句极度挑战】求一高难度删除SQL语句

0轰隆隆0 0轰隆隆0 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
现有表 temp

结构: UserID varchar(20);
OperateDate datetime;

[其它字段略,无主键]


数据: UserID OperateDate
-------- ------------------------
aaa 2008-04-02 14:58:13.073
bbb 2008-04-02 19:28:17.307
aaa 2008-04-02 19:28:43.870
ccc 2008-04-03 12:45:54.353
bbb 2008-04-03 12:46:35.557
aaa 2008-04-04 00:56:23.290
ddd 2008-04-06 00:10:04.887
aaa 2008-04-06 04:25:31.997

要求: 删除重复的数据
先根据 UserID 判断某条重复的记录是否大于5条,如果大于5条,则根据OperateDate 进行排序,删除日
期最早的记录,保留最新的重复UserID 的5条记录,所有UserID的重复记录可以有重复,但不允许超
过6条,只允许保留5条

补充:如果上面的要求不是看的很明白的话,那我换一个方向说一下,当执行了语句之后,在这张表里面,aaa的记录
不允许出现6条,bbb的记录也不允许出现6条;假如有一条记录aaa 的重复出现了8次,那么将删除这8条记录
中的3条,而且这三条是时间最早的三条,保留最新的5条。


阐述完毕,谢谢
...全文

相关推荐

评论 12
收藏 已收藏
分享
返回顶部
0轰隆隆0
MS-SQL Server 34,876 成员 254,635 内容