gpt4 book ai didi

sqlite - 限制ORDER BY的SQLite查询

转载 作者:行者123 更新时间:2023-12-03 12:18:04 25 4
gpt4 key购买 nike

我有下表:

date       |  id
-----------|------
unixtime_1 | 2
unixtime_1 | 7
unixtime_1 | 9
unixtime_1 | 24
unixtime_1 | 29
unixtime_1 | 21
unixtime_2 | 8


到目前为止,我从这样的表中得到结果:

SELECT date, id FROM table ORDER BY date DESC, id ASC


我得到

unixtime_1 |  2
unixtime_1 | 7
unixtime_1 | 9
unixtime_1 | 21
unixtime_1 | 24
unixtime_1 | 29
unixtime_2 | 8


我想知道是否可以 LIMIT结果,以便在 id=1-10 id=11-20id=21-30范围内,我只能获得ID较高的记录。
所以:

unixtime_1 |  9
unixtime_1 | 29


由于对于id range=11-20没有任何记录,因此应跳过范围。
现在的范围是1-10、11-20、21-30,但它们是我根据用户要求设置的自定义范围,因此我应该可以更改它们。

通过查询有可能吗?

谢谢

最佳答案

仅通过按日期和(id - 1) / <some_number>分组即可达到您的最新要求,在您的示例中,<some_number>为10。

SELECT t1.*
FROM yourTable t1
INNER JOIN
(
SELECT date, (id - 1) / 10 AS id_grp, MAX(id) AS max_id
FROM yourTable
GROUP BY date, (id - 1) / 10
) t2
ON t1.date = t2.date AND t1.id = t2.max_id
ORDER BY
t1.date, t1.id;


您只需将查询中的10替换为范围的末尾,即可选择任意 1 - num范围。

关于sqlite - 限制ORDER BY的SQLite查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50644887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com