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

请教一个SQL语句:查询相近记录的。
一个表:
用户ID、金额、时间。
要找到所有 
  用户ID、金额相同,时间相差一分钟的记录
的SQL语句怎么写?

------解决方案--------------------
引用楼主 cqa 的帖子:
一个表:
用户ID、金额、时间。
要找到所有
用户ID、金额相同,时间相差一分钟的记录
的SQL语句怎么写?

------解决方案--------------------
select m.* , n.* from 
(
select * , (select count(1) from tb where 用户ID = t.用户ID and 金额 = t.金额 and 时间 < t.时间) + 1 px from tb t
) m,
(
select * , (select count(1) from tb where 用户ID = t.用户ID and 金额 = t.金额 and 时间 < t.时间) + 1 px from tb t
) n
where m.用户ID = n.用户ID and m.金额 = n.金额 and m.px = n.px - 1 and (n.时间 - m.时间) * 24 * 60 * 60 <= 60


恩,可以
------解决方案--------------------
m.px = n.px - 1 ...
不等于的时候就没有时差在一分钟以内的记录了吗?
------解决方案--------------------
两条纪录相差一分钟,是要显示两条纪录,还是显示后一条?