日期:2014-05-17  浏览次数:20582 次

【SQL过滤重复】签到信息
表A数据
 ID 姓名 会议编码 签到时间 
 1 张三 SH1001 2012-08-12
 2 张三 SH1001 2012-08-12
 3 张三 SH1002 2012-08-13
 4 张三 SH1003 2012-08-13 
 5 张三 SH1003 2012-08-13

过滤之后 应该为

 2 张三 SH1001 2012-08-12
 3 张三 SH1002 2012-08-13
  4 张三 SH1003 2012-08-13 

也就是 一个人 可以签到两个会议 发现 一个人出现在相同会议签到两次的 就过滤





------解决方案--------------------
select min(ID), 姓名, 会议编码, min(签到时间) from table group by 姓名, 会议编码
------解决方案--------------------
select NUM,ID,姓名, 会议编码, 签到时间 from(SELECT ID,姓名, 会议编码, 签到时间 ROW_NUMBER() OVER (PARTITION BY id order by date desc ) AS NUM from table)c where c.NUM=1