Выберите минимальное и максимальное значение из части таблицы в MySQL
Если я хочу выбрать минимальные и максимальные значения из всей таблицы, я могу использовать это:
SELECT min(price) as min_price, max(price) as max_price FROM `prices`
но как выбрать минимальные и максимальные значения только из части таблицы? Например, у меня 30 строк в таблице. Я хочу выбрать min и max значения из первых десяти строк, затем из вторых десяти строк, а затем сформировать последние 10.
Я пробовал что-то вроде
SELECT min(price) as min_price, max(price) as max_price FROM `prices` LIMIT 0,10
но это не сработало.
Как я могу решить эту проблему с минимальными запросы?
2 ответов
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);
вам нужно изменить значение смещения, чтобы указать начальную точку вашего диапазона.
вы пробовали :
SELECT min(price) as min_price, max(price) as max_price FROM
(SELECT price FROM `prices` LIMIT 0,10);