2016-02-12 59 views
1

我有這樣在sql中找到第二高的每個組?

'encounterID' , 'dateAndTime' 

1234   2016-02-12 17:57:57 
1234   2016-02-12 17:58:59 
1234   2016-02-12 17:59:05 

12345   2016-02-12 17:57:57 
12345   2016-02-12 17:58:59 
12345   2016-02-12 17:59:05 

我想找到的每encounterId第二最新的入門表結構?

請人幫忙

回答

1

您可以使用變量來選擇頂正每組記錄:

SELECT encounterID, dateAndTime 
FROM (
    SELECT encounterID, dateAndTime, 
     @rn := IF(@eID = encounterID, @rn + 1, 
        IF(@eID := encounterID, 1, 1)) AS rn 
    FROM mytable 
    CROSS JOIN (SELECT @rn := 0, @eID := 0) AS vars 
    ORDER BY encounterID, dateAndTime DESC) AS t 
WHERE t.rn = 2 

外查詢選擇每encounterID組第二最新記錄。

Demo here

+0

非常感謝你......那作品 – user2768310

相關問題