2016-03-24 5 views
1

私のテーブル構成は以下のとおりです。 ma_symbolおよびma_dateは、この表の主キーです。各ma_symbolに対して等しい最大行数を引き出す

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_dateが最大(ma_date)に等しい行を引きたいです。したがって、結果は上の例のようになります。

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

私は以下の例を適用しようとしましたが、実行には時間がかかりすぎます。この表には500万件以上のレコードがあります。

Attempted Adapted Query

+0

あなたが試みたクエリを投稿してください(リンクされた投稿からそれを適用した後)。リンクされた投稿のクエリは無関係です。テーブルを照会するための努力を投稿してください。コードを含めないと、コード内で何が異なるかを教えてもらえません。 –

答えて

0

この試してみてください:あなたの本当のテーブル名にtblを変更し、自分の環境には、このクエリを実行するには

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; 

を。

関連する問題