sqlite - SQLite:选择从 n 到 ny 范围内的最小值
问题描述
我有一个由 id 和客户标识的订单列表。我需要从该客户放置的索引 n 的顺序开始知道索引 n-9 的订单的 ID。
例如:
SELECT OrderID
FROM Orders
WHERE CustomerID = "1808317576" AND OrderID < 29
ORDER BY OrderID DESC LIMIT 9
上面的查询返回这些记录:
订单编号 |
---|
28 |
26 |
23 |
20 |
19 |
18 |
17 |
16 |
13 |
为了解决我的问题,我尝试这样做:
SELECT OrderID
FROM Orders
WHERE CustomerID = "1808317576" AND OrderID < 29
ORDER BY OrderID DESC LIMIT 1
我会需要:
订单编号 |
---|
13 |
但它返回这个:
订单编号 |
---|
28 |
然后我试图DESC
从ORDER BY
:
SELECT OrderID
FROM Orders
WHERE CustomerID = "1808317576" AND OrderID < 29
ORDER BY OrderID LIMIT 1
但它返回这个:
订单编号 |
---|
1 |
我怎么能得到13?!
解决方案
添加OFFSET 8
以跳过返回的前 8 行并设置LIMIT 1
:
SELECT OrderID
FROM Orders
WHERE CustomerID = '1808317576' AND OrderID < 29
ORDER BY OrderID DESC
LIMIT 1 OFFSET 8
或更简单:
SELECT OrderID
FROM Orders
WHERE CustomerID = '1808317576' AND OrderID < 29
ORDER BY OrderID DESC
LIMIT 8,1
推荐阅读
- html - 从手机查看时如何使用css裁剪图像?
- linux - 运行 sh 脚本会给出未找到任何 unix/linux 基本命令的命令
- javascript - 在 Ionic3 App 中应该首先运行什么混淆或缩小 javascript 代码
- python - 泛化张量流裁剪和调整大小
- java - 未找到 Thymeleaf 布局 404
- sql - PostgreSQL How to get average of sum of certain rows
- html - 寻求帮助创建特定的固定 CSS 网格布局
- assembly - 我需要将函数参数存储到 RAM 吗?
- mongodb - 从 MongoDB 文档中删除字段
- machine-learning - 向量的向量之间的相似性