2016-02-22 139 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行的最大值,并且我们还想要检索另一列,则特定组的所有行将返回结果中。 –