2013-06-25 61 views
1

我有一個表的字段createdate,a,b,c,d,e。我想創建一個結果,顯示了以下內容:顯示sql記錄集中的相似記錄數

CREATEDATE,A,B,C,d,E,[數的在最後10分鐘用同樣的B,C,d創建的記錄

+0

您使用的數據庫是? (SQL Server,MySQL,...?) – Andomar

+0

從「now」開始,距離最後一次插入的值是相同的值(b,c,d)還是10分鐘? –

回答

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 
+0

你是不是指最後的條件在't2.d = t1.d' –

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 minute語法是針對MySQL的。對於SQL Server,請使用dateadd(minute, -10, yt1.createdate)