SQLite3逆序输出最新10条记录

问题描述 投票:0回答:1

我需要最后 10 条记录。问题是它的输出方式,因为从最新到最旧开始,我需要从最旧到新。见下文

sqlite> SELECT * FROM raw_all_sensors order by timestamp desc LIMIT 10;
2022-03-10 16:43:58|26.43|19.19|1014|56.81|0|0|813|0
2022-03-10 16:38:57|26.49|19.19|1014|55.22|0|0|813|0
2022-03-10 16:33:56|26.58|19.19|1014|55.67|0|0|813|0
2022-03-10 16:28:55|26.68|19.19|1014|56.08|0|0|813|0
2022-03-10 16:23:54|26.77|19.19|1014|55.72|0|0|813|0
2022-03-10 16:18:52|26.88|19.19|1014|56.49|0|0|813|0
2022-03-10 16:13:51|26.99|19.19|1014|56.47|0|0|813|0
2022-03-10 16:08:50|27.07|19.19|1014|56.04|0|0|813|0
2022-03-10 16:03:49|27.14|19.19|1014|55.98|0|0|813|0
2022-03-10 15:58:48|27.3|19.19|1014|56.37|0|0|813|0

但我需要

2022-03-10 15:58:48|27.3|19.19|1014|56.37|0|0|813|0
2022-03-10 16:03:49|27.14|19.19|1014|55.98|0|0|813|0
2022-03-10 16:08:50|27.07|19.19|1014|56.04|0|0|813|0
...

我该怎么做?

如果我这样做

asc
(而不是
desc
),它会从最旧的记录开始,这不是我想要的。

sqlite sql-order-by
1个回答
4
投票

我相信你想要的是:

SELECT *
FROM   (SELECT *
        FROM   raw_all_sensors
        ORDER  BY timestamp DESC
        LIMIT  10) t
ORDER  BY timestamp; 

基本上在派生表中获取所需的 10 行,然后在外部查询中按升序对它们进行排序。

© www.soinside.com 2019 - 2024. All rights reserved.