当前位置: 首页 > 知识库问答 >
问题:

从MySQL获取最大距离值

柳钟展
2023-03-14

我在数据库中有一个表。具有序列号(用户号)的用户(名称)可以播放多次。每次用户播放时,都会生成一个新id(id),并将其与分数(score)一起存储在数据库中。我想从表中获取前三名的分数,在表中显示每个用户的唯一最高分数。

表:

结果应该是:

我怎样才能得到上面的结果。我正在使用MySQL。

共有1个答案

公西兴业
2023-03-14

这可以通过派生表上的联接来完成,不过需要正确的索引才能使其高效

select id, uid, name, score
  from scores
  join (select uid, max(score) as score from scores group by uid) t
 using (uid, score)
 order by score desc
 limit 3;
+------+------+------+-------+
| id   | uid  | name | score |
+------+------+------+-------+
|    5 |    4 | n4   |   800 |
|    2 |    2 | n2   |   700 |
|    7 |    1 | n1   |   500 |
+------+------+------+-------+
3 rows in set (0.00 sec)

编辑:正确的索引应该是(uid,score)。派生表没有索引,因此mysql将循环遍历max scores结果,并从主表中提取匹配行。

 类似资料:
  • 问题内容: 我有一个工作的PHP脚本,该脚本获取经度和纬度值,然后将它们输入到MySQL查询中。我只想将其制作成MySQL。这是我当前的PHP代码: 有谁知道如何完全使用MySQL?我浏览了一下互联网,但是关于它的大多数文献都令人困惑。 问题答案: 来自Google Code常见问题解答-使用PHP,MySQL和Google Maps创建商店定位器 : 这是一条SQL语句,它将找到距离37,-12

  • 给定一个整数数组A,返回两个元素之间可能的最大求和距离。对于i,求和距离定义为 例如,在< code>A = [8,2,4,9,5,8,0,3,8,2]的情况下,i=0且j=8时获得的最大和距离为24 O(n2)解很简单。是否有O(n)解(其中n是数组的长度)?

  • 问题内容: 选项 询问 我有一个包含4列的数据库表: 唯一身份 城市名 纬度(纬度) 经度(lng) 我在顶部使用查询返回距指定坐标距离指定英里数内的位置。它似乎可行,但我不确定它的准确性如何。我很想知道查询是否很好,或者您是否有更好的解决方案。 问题答案: 看起来像是正确的大圆距查询。 您对WRT的准确性有何看法?

  • 这是我的第一个地理数据帧: 城市1 还有我的第二个地理数据框:City2: 我想第三个数据帧与最近的城市从城市1到城市2的距离像: 下面是我使用geodjango和dict的实际解决方案(但太长了): 以下是我的尝试: 这里: 问候

  • 手表利用内置的加速度计,通过您的手腕动作来测量速度和距离。这种功能对户外跑步或在 GPS 信号有限的地点跑步而言十分方便。为获得最大精度,确保您已经正确设置您的惯用手和身高。在您以感到自然舒适的步速进行跑步时,从手腕获取速度和距离的功能效果最佳。 将手表紧贴地戴在您的手腕上以避免任何摇晃。为确保读数稳定性,应将此装置始终佩戴在手腕的同一位置上。避免在同一手臂上佩戴其他任何装置,如手表、活动追踪手环