1

フィールドcreatedate、a、b、c、d、eを持つテーブルがあります。以下を示す結果セットを作成したいと思います。

createdate,a,b,c,d,e, [過去 10 分間に同じ b,c,d で作成されたレコードの数

4

2 に答える 2

0
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 minuteMySQL 用です。SQL Server の場合は、 を使用しますdateadd(minute, -10, yt1.createdate)

于 2013-06-25T12:57:23.563 に答える
0
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
于 2013-06-25T13:12:03.993 に答える