例如,我有以下数据.
PlayerId, data, score
1, 0, 20
1, 1, 10
2, 0, 30
2, 1, 40
2, 0, 40
Run Code Online (Sandbox Code Playgroud)
我如何得到以下结果?
PlayerId, data, score
1, 0 20
2, 1, 40
Run Code Online (Sandbox Code Playgroud)
对于结果的第2行,如果它返回数据0而不是1则无关紧要,因为40是0和1的最大分数,返回任何一个是好的我只为每个玩家返回一行,其中可能的数据为最大值(得分) ).
SELECT PlayerId,MAX(`data`) AS `data`, MAX(score) AS score
FROM your_table
GROUP BY PlayerId
Run Code Online (Sandbox Code Playgroud)
编辑:
第一个版本将获得这两个MAX值.现在我看到你想要来自实际行的数据:
SELECT PlayerId, score, MAX(`data`) AS `data`
FROM your_table
WHERE (PlayerId, score) IN (SELECT PlayerId, MAX(score)
FROM your_table
GROUP BY PlayerId)
GROUP BY PlayerId, score;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29 次 |
| 最近记录: |