我有一张有圈的桌子。我正在寻找一种方法来找到当时的最低圈速(即圈速记录),与以前的记录相比。我只是为了好玩才学习mysql,我还是个初学者。
(我将使用此项创建一个圈记录随时间变化的图表。)
我有一张这样的桌子:
create table temp_laptimes(
lap_id INT NOT NULL,
driver VARCHAR(5) NOT NULL,
laptime FLOAT(5,1) NOT NULL,
lap_date DATE,
PRIMARY KEY ( lap_id )
);
INSERT INTO `temp_laptimes` (`lap_id`, `driver`, `laptime`, `lap_date`)
VALUES
('1', 'Dean', '56.8', '2019-01-01'),
('22', 'Zach', '59.7', '2019-02-01'),
('33', 'Carl', '56.1', '2019-03-01'),
('42', 'Zoe', '56.3', '2019-04-01'),
('50', 'Zach', '56.4', '2019-05-01'),
('61', 'Bob', '55.9', '2019-06-01'),
('73', 'Zeb', '56.2', '2019-07-01'),
('84', 'Anne', '55.7', '2019-08-01'),
('95', 'Dean', '55.9', '2019-09-01');
我想找出一段时间以来的圈数记录(结果如下:
1 Dean 56.8 2019-01-01
33 Carl 56.1 2019-03-01
61 Bob 55.9 2019-06-01
84 Anne 55.7 2019-08-01
迪恩创造了第一圈,所以这是第一圈的记录。然后卡尔赢了,鲍勃赢了,最后安妮赢了,保持着目前的记录。
在共享主机上运行的MySQL。如你所见,lap_id不是连续的。
我尝试过这样的事情:
SELECT * FROM `temp_laptimes` t1
JOIN (
SELECT lap_id, driver, laptime, lap_date
FROM temp_laptimes
GROUP BY laptime
)
AS t2 ON t1.laptime < t2.laptime AND t1.lap_date > t2.lap_date
ORDER BY t1.laptime ASC
它似乎发现了所有发生在一个较后的圈时间低于一个以前的圈时间的地方。例如,安妮在比赛结果中出现了7次,因为她用自己的圈速跑了7次不同的圈速。鲍勃出现了5次。佐伊出现了一次,因为她上次打败了扎克。
但我不知道怎么整理圈内记录。
正如我所说,我是一个新手,感谢任何帮助和正确方向的指针。这只是一个爱好项目,我做的乐趣。另外,英语不是我的母语,如果我的解释不清楚,请道歉。谢谢。