我有一个MySQL表格(names),它由两个字段(name和rank)组成。name的值不唯一,可能有多个匹配项。
问题:我想选择记录,并按name分组,但如果有多个name,则应取最高rank的那个。
例如:
Tom 2
Ben 1
Ben 2
通常返回:
Tom 2
Ben 1
我需要:
Tom 2
Ben 2
因为有两个Bens,但第二个Ben排名更高。
看起来,MySQL分组只采用第一个名称并忽略其他名称。
如何对“group by”内的记录进行排序,以便可以指定在具有相同name的多个记录中采用哪个记录?
问题:我想选择记录,并按name分组,但如果有多个name,则应取最高rank的那个。
例如:
Tom 2
Ben 1
Ben 2
通常返回:
Tom 2
Ben 1
我需要:
Tom 2
Ben 2
因为有两个Bens,但第二个Ben排名更高。
看起来,MySQL分组只采用第一个名称并忽略其他名称。
如何对“group by”内的记录进行排序,以便可以指定在具有相同name的多个记录中采用哪个记录?
group by name
,以便返回每个name
的max(rank)
,而不是整体的max(rank)
。 - Dennis Benzinger