写一段sql 条件一:累计6次及以上交易对手为不同户名,条件二:第一笔与第六笔时间差在10分钟内
时间: 2024-02-20 11:02:25 浏览: 23
假设我们有一个表格叫做transactions,包含了账户名(account_name)、交易对手户名(counterparty_name)和交易时间(transaction_time)等字段,那么可以使用以下SQL语句进行筛选:
```
SELECT account_name
FROM (
SELECT ROW_NUMBER() OVER (PARTITION BY account_name ORDER BY transaction_time) AS row_number,
account_name,
counterparty_name,
transaction_time
FROM transactions
) AS subquery
WHERE row_number <= 6 -- 筛选前六笔交易记录
GROUP BY account_name
HAVING COUNT(DISTINCT counterparty_name) >= 6 -- 筛选交易对手户名不同的账户数量大于等于6
AND DATEDIFF(minute, MIN(transaction_time), MAX(transaction_time)) <= 10 -- 筛选第一笔和第六笔交易记录之间的时间差小于等于10分钟
```
解释一下,首先使用子查询对每个账户名进行编号,然后筛选出前六笔交易记录,并使用GROUP BY子句对账户名进行分组。然后使用HAVING子句筛选出交易对手户名不同的账户数量大于等于6的账户名。最后,使用DATEDIFF函数计算第一笔和第六笔交易记录之间的时间差,并筛选出时间差小于等于10分钟的账户名。其中,COUNT(DISTINCT counterparty_name)表示计算不同交易对手户名的数量。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)