SQLite:从有限行集中选择MIN

时间:2012-07-06 20:18:05

标签: sql sqlite

我需要从表格的前5行中选择最小ID值。我通过此查询获得了最高ID:

SELECT id FROM items ORDER BY id DESC LIMIT 5

它工作正常并返回前5行的ID值:

314
313
312
311
310

现在,尝试从此集合中获取最小ID:

SELECT MIN(id) FROM items ORDER BY id DESC LIMIT 5

我希望结果 310 ,但SQLite返回 1 。 那是怎么回事?我哪里错了,我实现了目标吗?

更新:

SELECT MIN(id) FROM (SELECT id FROM news_items ORDER BY id DESC LIMIT 5)有效,所以现在我只是对第一个查询的错误感到好奇。

2 个答案:

答案 0 :(得分:1)

假设您实际使用的是MIN而不是MAX,那么解释非常简单。 ORDER BY id DESC LIMIT 5是在您的查询中评估的最后一部分。因此,在您的第一个查询中,您正在检索id的最小值(它应该是0),然后ORDER BY ....是无关紧要的(您正在订购并限制一行)< / p>

答案 1 :(得分:0)

ORDER BY要求评估整个数据集,以便正确排序。

通过经验证据我们可以假设MIN在每一行进行评估。 :)