写一段sql 条件一:累计6次及以上交易对手为不同户名,条件二:其中6交易,时间差在10分钟内
时间: 2024-02-20 22:02:41 浏览: 13
根据您的要求,我可以提供以下 SQL 语句:
```
SELECT user_id1, user_id2
FROM (
SELECT
trans1.user_id AS user_id1,
trans2.user_id AS user_id2,
COUNT(DISTINCT trans1.user_id, trans2.user_id) AS num_transactions,
MAX(trans2.trans_time) AS max_trans_time
FROM transactions AS trans1
JOIN transactions AS trans2
ON trans1.trans_id < trans2.trans_id AND trans1.user_id != trans2.user_id
WHERE TIMESTAMPDIFF(MINUTE, trans1.trans_time, trans2.trans_time) <= 10
GROUP BY trans1.user_id, trans2.user_id
HAVING COUNT(DISTINCT trans1.user_id, trans2.user_id) >= 6
) AS temp_table
WHERE num_transactions >= 6 AND TIMESTAMPDIFF(MINUTE, MIN(max_trans_time), MAX(max_trans_time)) <= 10;
```
这个 SQL 语句首先找到所有满足条件一的交易对,即累计6次及以上交易对手为不同户名的交易对,并计算它们的交易次数和最后一笔交易的时间。然后,它从这些交易对中找到交易次数达到6次及以上,且这6笔交易的时间差都在10分钟内的交易对。其中,trans_id 是交易的唯一标识符,trans_time 是交易时间,user_id 是交易的用户 ID。