我有这个
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
组的"Rank"(最大值(。 - 将此派生表与基于
Team
的表联接。 - 现在,按"排名"降序对结果进行排序,
Name
按升序对结果进行排序。因此,具有最高最大值的团队行排在第一位,按其内部Name
排序。
您可以尝试以下查询(将your_table
替换为实际表名(:
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