Select SQLite按库存符号选择最后2条记录

Select SQLite按库存符号选择最后2条记录,select,sqlite,group-by,limit,Select,Sqlite,Group By,Limit,我有一个SQLite3股票价格表(见下面的示例)。我想定义一个SELECT语句,该语句将按时间戳按降序检索每个股票符号(组)的最后2条记录。表的主键是Symbol+TimeStamp Symbol TimeStamp Close ZXYZ 2/12/2016 16:00 17.81 ZXYZ 2/16/2016 16:00 18.83 ZXYZ 2/17/2016 16:00 19.38 ZXYZ 2/18/2016 16:00 19.55 <-- ZXYZ

我有一个SQLite3股票价格表(见下面的示例)。我想定义一个SELECT语句,该语句将按时间戳按降序检索每个股票符号(组)的最后2条记录。表的主键是Symbol+TimeStamp

Symbol  TimeStamp   Close
ZXYZ    2/12/2016 16:00 17.81
ZXYZ    2/16/2016 16:00 18.83
ZXYZ    2/17/2016 16:00 19.38
ZXYZ    2/18/2016 16:00 19.55 <--
ZXYZ    2/19/2016 16:00 20.31 <--
ZAGG    2/12/2016 16:00 9.10
ZAGG    2/16/2016 16:00 9.70
ZAGG    2/17/2016 16:00 9.59
ZAGG    2/18/2016 16:00 9.62  <--
ZAGG    2/19/2016 16:00 10.01 <--
ZAYO    2/12/2016 16:00 21.89
ZAYO    2/16/2016 16:00 23.22
ZAYO    2/17/2016 16:00 23.63
ZAYO    2/18/2016 16:00 23.80 <--
ZAYO    2/19/2016 16:00 23.51 <--

感谢您的帮助。

我认为这在SQLite中会起作用:

select sp.*
from stockprices sp
where sp.timestamp in (select sp2.timestamp
                       from stockprices sp2
                       where sp2.symbol = sp.symbol
                       order by sp2.timestamp desc
                       limit 2
                      )
order by sp.symbol, sp.timestamp desc;

我认为这将在SQLite中起作用:

select sp.*
from stockprices sp
where sp.timestamp in (select sp2.timestamp
                       from stockprices sp2
                       where sp2.symbol = sp.symbol
                       order by sp2.timestamp desc
                       limit 2
                      )
order by sp.symbol, sp.timestamp desc;