mysql - 从 map 和计数中获得最佳结果

标签 mysql sql

我向您展示了我需要的示例。

包含这些列和数据的表格例如:

id  | mapname   | username  | score
----|-----------|-----------|--------
1   | mid_town  | carolina  | 5
2   | mid_town  | rupert    | 10
3   | id_room   | carolina  | 7
4   | mid_town  | mordor    | 14
5   | id_room   | intel     | 12
6   | id_room   | puyol     | 21
7   | pindle    | puyol     | 17
8   | pindle    | messi     | 28
9   | mid_town  | puyol     | 24
n   | unknown   | unknown   | unknown

我需要从 mapname order by score desc 中找到最好的,但我不知道所有 map 名称。

所以,在这种情况下,

来自 mid_town 的最佳球员是 puyol,得分为 24,

id_room 中最好的是 puyol,得分为 21,

pindle 中最好的是梅西,得分为 28。

输出:

puyol 2
messi 1

如何在单个查询中转换它?

最佳答案

试试这个:

select username, score from `table` where (mapname,score) in (select mapname, max(score) from `table` group by mapname)

关于mysql - 从 map 和计数中获得最佳结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30366390/

相关文章:

sql - 使用多个 WITH tablename AS (...) 语句 SQL Server

sql查询需要包含银行假期

mysql - 具有类似数组支持的数据库?

mysql - 对多个表使用 REPLACE INTO

mysql - 如何增加 INSERT IGNORE 到 UNIQUE 列的数量?

mysql - 当值不是日期时,CASE 计数值

php - 通过表单将多行插入数据库

python - mysql 行受到影响,但是表仍然是空的

php - MySql PDO - 使用 GROUP BY、ORDER BY 和 INNER JOIN 时如何获取 "newest rows from group"?

sql - 在 JOIN 的 ON 子句中使用别名