sql关于重复记录查询的问题?

mtxxm1226 2019-02-19 08:29:28
我有一个表,结构如下:
日期 账号 ...
20190101 123
20190101 123
20190101 123
20190102 456
20190102 456
20190103 789
20190103 789
20190103 789
....
要写一个SQL查询主句,要选出,当日期相同时,如果账号相同的记录数超过3条时,只选出重复记录中的前两条,请问应该怎样写这条SQL语句,谢谢!
...全文
106 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
shw014 2019-02-19
  • 打赏
  • 举报
回复
假设 表名 为 test,另有一字段[信息]能够区分任何两条记录 sql2005及以上
SELECT * FROM(
select row_number() over (partition by 日期,账号 order by 信息) as num, * from TEST
)B where num<3
sql2000
select * from (
select (select count(1) from TEST where 日期=t.日期 and  账号=t.账号 and 信息<=t.信息   )  as num ,t.* from TEST t 
 ) B where num<3
卖水果的net 版主 2019-02-19
  • 打赏
  • 举报
回复
row_number 研究一下。
shw014 2019-02-19
  • 打赏
  • 举报
回复
mtxxm1226 2019-02-19
  • 打赏
  • 举报
回复
谢谢shw014,通过你的方法是可行的,可是我还是没看懂这个SQL语句意思和方法,如果你解释一下的不胜感激,谢谢,给分了!

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧