从MySQL的表的一部分中选择最小值和最大值

时间:2011-02-10 13:41:32

标签: sql mysql max min

如果我想从整个表中选择最小值和最大值,我可以使用它:

SELECT min(price) as min_price, max(price) as max_price FROM `prices`

但是如何从表格的一部分中选择最小值和最大值? 例如,我在表中有30行。我想从前十行,然后从后十行中选择最小值和最大值,然后形成最后一行。

我尝试过像

这样的东西
SELECT min(price) as min_price, max(price) as max_price FROM `prices` LIMIT 0,10

但这不起作用。

如何使用最少的查询解决此问题?

2 个答案:

答案 0 :(得分:13)

SELECT MIN(PRICE) AS MinPrice, MAX(PRICE) AS MaxPrice FROM (SELECT PRICE FROM PRICES LIMIT 10) tmp;

此外,MySQL有一个很酷的功能,可以让你返回任意范围的行(例如返回行10-20)。这对于显示记录页面非常方便:

SELECT column FROM table
LIMIT 10 OFFSET 20

上述查询将返回20-30行。

简而言之,要在查询时将行返回20到30,请使用:

SELECT MIN(PRICE) AS MinPrice, MAX(PRICE) AS MaxPrice 
FROM (SELECT PRICE FROM PRICES LIMIT 10 OFFSET 20);

您需要更改偏移值以指定范围的起点。

答案 1 :(得分:6)

你试过了吗?

SELECT min(price) as min_price, max(price) as max_price FROM 
    (SELECT price FROM `prices` LIMIT 0,10);