我试图获得特定用户拥有的特定轨道的特定圈时间的排名。GROUP BY在子查询中获得准确的排名
对于特定用户,此表中有多行(圈)。所以我试图在FIND_IN_SET的子查询中看到GROUP BY。
现在MySQL(最新版本)抱怨说,我的session_id,user_id,track_id,持续时间不汇总为GROUP BY。
我不明白为什么它抱怨这是因为GROUP BY在子查询中。
session_lap_times模式:
session_id, int
user_id, int
track_id, int
duration, decimal
这是我这么远。
SELECT
session_id
user_id,
track_id,
duration,
FIND_IN_SET(duration,
(SELECT GROUP_CONCAT(duration ORDER BY duration ASC) FROM
(SELECT user_id,track_id,min(duration)
FROM session_lap_times GROUP BY user_id,track_id) AS aa WHERE track_id=s1.track_id)
) as ranking
FROM session_lap_times s1
WHERE user_id=1
它似乎也试图通过父查询的规则来强制组。
供参考,这是我得到的错误:http://imgur.com/a/ILufE
任何帮助是极大的赞赏。
查看我更新的查询。当我编辑它时,你一定会抓到我的。抱歉。我围绕track_id包装any_value()。这并没有解决它:( – toast