フィールドcreatedate、a、b、c、d、eを持つテーブルがあります。以下を示す結果セットを作成したいと思います。
createdate,a,b,c,d,e, [過去 10 分間に同じ b,c,d で作成されたレコードの数
フィールドcreatedate、a、b、c、d、eを持つテーブルがあります。以下を示す結果セットを作成したいと思います。
createdate,a,b,c,d,e, [過去 10 分間に同じ b,c,d で作成されたレコードの数
select *
, (
select count(*)
from YourTable yt2
where yt1.b = yt2.b
and yt1.c = yt2.c
and yt1.d = yt2.d
and yt2.createdate between
yt1.createdate - interval 10 minute
and yt1.createdate
) as DuplicateCount
from YourTable yt1
構文はyt1.createdate - interval 10 minute
MySQL 用です。SQL Server の場合は、 を使用しますdateadd(minute, -10, yt1.createdate)
。
SELECT
createdate,
a,
b,
c,
d,
e,
duplicatesCount =
(
SELECT count(*) as c
FROM Table as t2
WHERE DATEADD(minute, 10, t1.createdate) > GETDATE()
AND t2.b = t1.b AND t2.c = t1.c AND t2.d = t1.c
)
FROM Table as t1