2011-12-21 5 views
2

У меня есть таблица MySQL со списком ШТАТОВ и ORDERAMOUNTs:Выберите максимальное значение для каждого значения в таблице MySQL

State | OrderAmount 
=================== 
New York 5 
New York 6 
Pennsylvania 6 
Pennsylvania 7 

Я хочу, чтобы выбрать список всех государств, которые имеют какой-либо один приказ БОЛЬШИМ то данной суммы, скажем, 15, а также наибольшую сумму заказа для этого штата. Как бы я перебирал все значения STtate, чтобы получить этот список, используя один запрос?

ответ

3

проверялось, но должно работать:

SELECT state, max(orderamount) AS amount FROM table GROUP BY state HAVING amount > 15; 
+0

красоту MYSQL – Umer

+0

@Umer: Согласен, однако этот тип запроса на больших таблиц может быть болезненным , –

+0

Это было просто и отлично! – MarathonStudios

0

попробовать что-то вроде:

Select s1.state, s1.orderamount, MAX(s2.orderamount) AS max_amount FROM states s1 
LEFT JOIN states s2 ON s1.id = s2.id 
WHERE s1.orderamount > 15 GROUP BY s1.id