我需要根据race_time
中的时间为列race_order设置一个值。这需要以每个class_id
为基础。
我尝试了几个不同的查询来获得我想要的结果,但我在这个问题上遇到了困难。
Column Type
time_tracking_id (Primary) int(1)
event_id int(1)
class_id int(1)
race_type varchar(1)
race_nbr int(1)
race_time varchar(10)
race_order int(1)
请参阅此sqlfiddle:http://www.sqlfiddle.com/#!9/2e2e6/1/0
这就是我正在寻找的结果:
time_tracking_id event_id class_id race_type race_nbr race_time race_order5 113 14(零)21 121.0000 16 113 14(零)22 124.0000 21 113 17(零)25 120.0000 12 113 17(零)26 180.0000 2
它不是很快,但如果race_time对于每个class_id:都是唯一的,则它是有效的
SELECT
time_tracking_id,
event_id,
class_id,
race_type,
race_nbr,
race_time,
1 + (SELECT COUNT(*) FROM tbl_time_tracking t2
WHERE t2.class_id = tbl_time_tracking.class_id
AND t2.race_time < tbl_time_tracking.race_time) AS race_order
FROM
tbl_time_tracking
ORDER BY class_id,
race_time