2016-03-24 27 views
1

我的表結構如下。 ma_symbol和ma_date是這個表的主鍵。等於最大的拉行數

ma_symbol | ma_date | ma 
     A 2015-03-01 1 
     A 2016-04-01 2 
     B 2014-01-01 3 
     B 2014-02-02 4 

對於每個ma_symbol,我想拉ma_date等於max(ma_date)的行。所以,結果是這樣的,從上面的例子:

ma_symbol | ma_date | ma 
     A 2016-04-01 2 
     B 2015-02-02 4 

我試圖適應下面的例子,但它需要太長時間運行。這張表有500萬條記錄。

Attempted Adapted Query

+0

請發佈您嘗試的查詢(從鏈接的帖子調整後)。鏈接的帖子中的查詢是不相關的。發佈你的努力來查詢表; ;我們不能告訴你,當你不包含代碼時,你的代碼可能會做什麼不同。 –

回答

0

試試這個:

SELECT t1.* 
FROM tbl t1 INNER JOIN 
    (SELECT ma_symbol, MAX(ma_date) AS max_ma_date FROM tbl GROUP BY ma_symbol) t2 
    ON t1.ma_symbol = t2.ma_symbol AND t1.ma_date = t2.max_ma_date; 

要在您的環境運行此查詢,修改tbl到您的真實表名。