mysql - 识别 SQL 中的重复事务
问题描述
最近因为一个问题,多个重复的事务在不同的时间被插入到数据库中。需要找到那些重复的交易并删除它们。
我尝试将成员和交易分组
select count(*),
member_id,
TRUNC(created, 'DDD')
from TXN
where created > TO_DATE('06/01/2019 00:00:00', 'MM/DD/YYYY HH24:MI:SS')
group by member_id,
TRUNC(created, 'DDD')
having count(*) > 2;
我需要在 10 分钟时差内为同一成员创建的所有交易。
例子:
MEMBER_ID ROW_ID ORG DEST Created
1-FRGD 1-FGTH YFG DFG 10-01-2019 00:00:00:00
1-FRGD 1-TYHG THU SEF 10-01-2019 00:00:09:12
1-FGHR 1-FTGH TGH DRF 10-01-2019 00:01:03:25
在此示例中,我需要前两个 txns 作为输出,因为如果时差不超过 10 分钟并且具有相同的成员编号
解决方案
您可能想要自我加入:
select a.Member_Id as Member_Id,
a.Row_Id as Row_Id,
a.Org as Org,
a.Dest as Dest ,
a.Created as Created,
b.Row_Id as Duplicate_Row_Id,
b.Org as Duplicate_Org,
b.Dest as Duplicate_Dest,
b.Created as Duplicate_Created
from TXN a inner join
TXN b on a.Member_Id = b.Member_Id and
a.Created < b.Created and
TIMESTAMPDIFF(a.Created, b.Created) / 60 <= 10
order by a.Member_Id
对于您中的每条记录,TNX
请提供其重复项。
推荐阅读
- javascript - Java 脚本更改剪贴板笔记
- php - 如何使用管道样式制作 TCPDF 复选框?
- python - 如何在 python 中调用由 Matlab 脚本生成的 dll?
- spring-boot - 休眠 JPA 循环
- swagger - Swagger 2.9.2 到 Swagger 3.0.0
- c# - VS Code 为 Unity 项目中的 C# 文件启用 Intellisense
- scala - 是否可以将视图实现隐藏在 Scala 应用程序中?
- javascript - 如何在 react-native 中订阅 firebase 特定主题?
- arrays - 搜索对象数组
- php - 无法访问组件中的请求对象。$this->request 在升级到 cakephp 4.0 后在组件中为空