2016-03-24 19 views
1

Tablo yapmam aşağıda. Ma_symbol ve ma_date bu tablo için birincil anahtarlardır. ma_date max (ma_date) eşittir her ma_symbol için Eşit Maks Tarihin Çekilişi Satır

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 

, ben satırları çekmek istiyorum. Yani sonuç Yukarıdaki örnekten şu şekilde görünecektir: Aşağıdaki örnek adapte çalıştık ama çok uzun çalıştırmak için gereken

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

. Bu tabloda 5 milyon + kayıt var.

Attempted Adapted Query

+0

Lütfen denediğiniz sorgunuzu (bağlanan gönderiden uyarladıktan sonra) gönderin. Bağlantılı yayındaki sorgu alakasız. Tabloyu sorgulamak için çabalarınızı gönderin; kodunuzu dahil etmediğinizde, kodunuzda farklı olarak neler yapabileceğinizi size söyleyemeyiz. –

cevap

0

bu deneyin:

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; 

gerçek tablo adını tbl, çevrenizde bu sorguyu çalıştırmak değiştirin.

İlgili konular