9

If I want to select min and max values from a whole table I can use this:

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

But how to select min and max values from just a part of a table? For example, I have 30 rows in a table. I want to select min and max values from first ten rows, then from second ten rows and then form the last 10.

I've tried something like

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

but this did not work.

How can I solve this problem with minimum queries?

4

2 に答える 2

15
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);

範囲の開始点を指定するには、オフセット値を変更する必要があります。

于 2011-02-10T13:47:08.273 に答える
7

やってみました :

SELECT min(price) as min_price, max(price) as max_price FROM 
    (SELECT price FROM `prices` LIMIT 0,10);
于 2011-02-10T13:44:56.533 に答える