получение всех строк с максимальным значением - PullRequest
1 голос
/ 15 марта 2012

У меня такой запрос:

SELECT state AS ls,count(*) AS total, max(sales) AS ye FROM TABLE
GROUP BY state

Затем я получаю следующий результат:

A total ye
----------
a  22   23
b  23   23
c  24   21
d  25   21

Но я хочу отобразить только состояние с максимальным значением ye,т.е.:

A total ye
----------
a  22   23
b  23   23

Ответы [ 4 ]

4 голосов
/ 15 марта 2012

Для этого можно использовать предложение HAVING, оно похоже на WHERE Только оно выполняется после получения всех данных.Вы можете указать его после группы как:

select state as ls,count(*) as total ,max(sales) as ye from  table    
group by state
having count(*) = max(sales)
3 голосов
/ 15 марта 2012

Попробуйте:

select state as ls,count(*) as total, max(sales) as ye from  table    
group by state
having max(sales) = (select max(sales) from table)
2 голосов
/ 15 марта 2012
select state as ls,count(*) as total ,max(sales) as ye from  table    
where sales = (select max(sales) from table)
group by state
1 голос
/ 15 марта 2012

Попробуйте этот запрос:

select * from (select state as ls,count(*) as total ,max(sales) as ye from  table    
group by state)temp HAVING max( ye );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...