MySQL选择按用户分组的最高单圈时间

时间:2012-11-08 13:27:52

标签: mysql

我有一个简单的MySQL表用于单圈时间。 由以下

组成
  • Primay Key
  • 曲目ID
  • 用户ID
  • 一圈时间
  • 圈状态

我基本上想要选择前10个单圈时间,但每个用户只能选择一个。 因此,如果我有2个单圈的X轨道,我想得到最好的一个。

如果我跑

SELECT * FROM tbl_lap_times ORDER BY lap_times ASC

我看到了我的单圈时间,我的最佳时间位于顶部。 但如上所述,我只想要每个用户一圈时间。

如果我跑

SELECT * FROM tbl_lap_times GROUP BY users_id ORDER BY lap_times ASC

然后我得到我的第一圈时间(这不是我最好的单圈时间)

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

您是否尝试过使用min()功能?

SELECT users_id, min(lap_times) FROM tbl_lap_times GROUP BY users_id

答案 1 :(得分:0)

您需要使用MIN进行汇总。这样的事情应该有效(未经测试):

SELECT user_id, track_id, lap_status, MIN(lap_times) AS best_time
FROM tbl_lap_times
GROUP BY user_id, track_id, lap_status
ORDER BY best_time DESC
LIMIT 10