我的表结构如下。 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万条记录。
答案 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
修改为您的真实表名。