Mysql 按组中的最大值排序

Mysql 按组中的最大值排序,mysql,sql-order-by,Mysql,Sql Order By,我有这个 Name | Team | Value -------|----------|-------- A | RED |1 B | BLUE |2 C | RED |3 D | BLUE |4 E | BLUE |5 我需要这个: 最大值较高的团队首先出现 Name | Team | Value -------|----------|-------- B | BL

我有这个

Name   | Team     | Value
-------|----------|--------
A      | RED      |1
B      | BLUE     |2
C      | RED      |3
D      | BLUE     |4
E      | BLUE     |5
我需要这个: 最大值较高的团队首先出现

Name   | Team     | Value
-------|----------|--------
B      | BLUE     |2
D      | BLUE     |4
E      | BLUE     |5
A      | RED      |1
C      | RED      |3
  • 首先,在
    t2
    中找到每个
    团队的“排名”(最大值)
  • 使用
    Team
    将此派生表与基于您的表连接起来
  • 现在,按“排名”降序排列结果,按升序排列
    Name
    。因此,团队中最大值最高的行排在第一位,按其内部的
    名称进行排序
您可以尝试以下查询(用实际表名替换
您的\u表
):

可能重复的
SELECT t1.Name, 
       t1.Team, 
       t1.Value 
FROM your_table AS t1 
JOIN 
(
  SELECT t2.Team, 
         MAX(t2.Value) AS rank 
  FROM your_table AS t2 
  GROUP BY t2.Team 
) AS t2 ON t2.Team = t1.Team 
ORDER BY t2.rank DESC, t1.Name ASC