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