從下表。

我想要的結果如下

如果我們查看源表,我們可以看到Sr. No 2、3、4 和 5 的事務在 10 分鐘內發生,類似的事務Sr. No 7、8 和 9 發生在 10 分鐘內,因此總事務為A為 3,C為 2,B為 2
如果您需要任何進一步的說明,請告訴我。
將感謝您的幫助,謝謝。
uj5u.com熱心網友回復:
這是一個擴展問題,但在合理的表大小和適當的索引下,這種方法應該可以正常作業。
WITH t AS
(
SELECT s1 = t1.SrNo, u1 = t1.Username,
s2 = t2.SrNo, u2 = t2.Username
FROM dbo.Transactions AS t1
INNER JOIN dbo.Transactions AS t2
ON t2.TransactionDateTime > t1.TransactionDateTime
AND t2.TransactionDateTime <= DATEADD(MINUTE, 10, t1.TransactionDateTime)
)
SELECT Username = u1, TransactionCount = COUNT(DISTINCT s1)
FROM
(
SELECT u1, s1 FROM t UNION ALL SELECT u2, s2 FROM t
) AS u GROUP BY u1;
輸出:
| 用戶名 | 事務計數 |
|---|---|
| 一個 | 3 |
| 乙 | 2 |
| C | 2 |
示例小提琴。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/528472.html
標籤:sqlsql服务器
