SQLite SELECT 股票代号的最后 2 条记录

SQLite SELECT last 2 records by Stock Symbol

我有一个 SQLite3 table 的股票价格(见下面的例子)。我想定义一个 SELECT 语句,它将按时间戳按降序检索每个股票代码(组)的最后 2 条记录。 table 的主键是 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 <--

完成后,生成的 table 应如下所示:

Symbol  TimeStamp   Close
ZXYZ    2/18/2016 16:00 19.549999
ZXYZ    2/19/2016 16:00 20.309999
ZAGG    2/18/2016 16:00 9.62
ZAGG    2/19/2016 16:00 10.01
ZAYO    2/18/2016 16:00 23.799999
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;