2016-02-22 4 views
0

Я отчаянно искал ответ на, казалось бы, простой запрос, но не повезло найти ответ до сих пор. Я надеюсь, кто-то может по крайней мере указать мне в правильном направлении.Найти наибольшую ценность среди повторяющихся записей в таблице sql

Скажем, у меня есть стол с цветами и размерами веревок (дюймы) с колонками: color, inches.

Если значения в цвете и дюймах, соответственно, являются:

Red   38 
Red   45 
Yellow  12 
Blue   85 
Blue   12 
Blue   18 

Я хочу запросить сам длинный канат одного цвета. В идеале запрос будет возвращен:

Red  45 
Yellow  12 
Blue  85 

Как я могу найти это с помощью SQL-запросов?

Спасибо всем!

+0

Возможного дубликат [SQL выбрать только строки с максимальным значением на столбец] (http://stackoverflow.com/questions/7745609/sql-select-only-rows-with-max-value-on-a-column) – jmargolisvt

ответ

3

Вам необходимо изучить инструкцию GROUP BY и прочитать о агрегатных функциях.

MySQL Reference manual может стать отличным источником знаний в этом случае.

select 
    color, max(inches) as longest_inches 
from 
    yourtable 
group by color 

Он работает путем группирования всех строк с одинаковым значением в столбце color, а затем извлекая максимальное значение среди каждой группы, таким образом, давая вам ожидаемый выход

+0

Если мы также хотим вернуть другие столбцы из строки, которая имеет максимальное значение, требуемый для этого запрос менее тривиален. Для указанного ОП указывает, что это шаблон, который мы будем использовать. – spencer7593

+0

Расширение комментария @ spencer7593, если в группе было больше 1 строки с максимальным значением, и мы также хотели бы получить другой столбец, все строки для определенной группы будут возвращены в результате. –

Смежные вопросы