2011-07-27 78 views
3

簡單表object只有兩列:idcdate(創建日期)。我需要和sql查詢,這將額外顯示第三列:之前創建的每個對象的數量。簡單的計數不是一個選項 - 我需要在查詢中顯式的日期比較。 非常感謝提前!mysql在單個表中統計記錄,需要幫助

+0

你的意思是:在每個對象之前創建的對象的數量? –

+0

@james_bond,是的,已更新。 – Osw

回答

2
SELECT t1.id, t1.cdate, 
(SELECT COUNT(*) FROM yTable AS t2 WHERE t1.cdate > t2.date) AS createdbefore 
FROM yTable AS t1 

應該吸性能明智的,因爲它有明顯的計數,每行。在你的前端做這件事會更好。

+2

感謝提到的性能,測試,看起來很糟糕,重建數據模型... – Osw

2
SELECT 
    id, 
    cdate, 
    (SELECT 
    COUNT(*) 
    FROM 
    object AS t2 
    WHERE 
    t2.cdate < t1.cdate) 
FROM 
    object AS t1