1

このような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) group で最も高い score_round_1 を持つレコードを選択したいと思います。

この場合、最初と最後の行が選択されます。

GROUP BY round_1 を使用してみましたが、2 つの行のうち最初の行しか返されません。

何かアドバイス?

ゾルカ

4

3 に答える 3

0

集計関数MAXを使用する

SELECT names, MAX(score_round_1) GROUP BY round_1
于 2012-04-25T09:37:08.867 に答える
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
于 2012-04-25T09:41:20.460 に答える
0

これは簡単です

select max(score_round_1),
       name
from score
group by round_1  
于 2012-04-25T11:57:18.880 に答える