2016-02-22 68 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

如果我們還想從行中返回其他列最大值,所需的查詢並不重要。對於指定的結果OP,這是我們要使用的模式。 – spencer7593

+0

擴展@ spencer7593評論,如果組中有超過1行的最大值,並且我們還想要檢索另一列,則特定組的所有行將返回結果中。 –