MySQL查询:选择组中值最高的记录

时间:2012-04-25 09:32:31

标签: mysql

我有一个像这样的MySQL表。

| season_id | round_1 | names  | score_round_1
| 5         | 10      | John1  | 5  
| 5         | 10      | John2  | 3
| 5         | 11      | John3  | 2
| 5         | 11      | John4  | 5

我想在每个round_1(10,11)组中选择score_round_1最高的记录。

在这种情况下,将选择第一行和最后一行。

我尝试使用GROUP BY round_1,但只返回两者中的第一行。

有什么建议吗?

Zolka

3 个答案:

答案 0 :(得分:0)

使用汇总功能MAX

SELECT names, MAX(score_round_1) GROUP BY round_1

答案 1 :(得分:0)

SELECT *
FROM table p1
WHERE score_round_1 = (
SELECT MAX( p2.score_round_1 )
FROM table p2
WHERE p1.round_1  = p2.round_1  ) ANDround_1 !=0

答案 2 :(得分:0)

这很简单

select max(score_round_1),
       name
from score
group by round_1