Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 没有为某人获取重复记录_Php_Mysql - Fatal编程技术网

Php 没有为某人获取重复记录

Php 没有为某人获取重复记录,php,mysql,Php,Mysql,我有一张比赛记录表,保存着比赛记录。当某人完成比赛时,无论完成时间或位置是什么,记录都会被插入表中。我想获得前五名最佳车手,而不是前五名最佳时刻 请帮助我进行sql查询。顺便说一下,这些列是id、holder、rec_time、time、position 有了这些新信息,您可以尝试另一种方法: 首先,您需要知道每个持有者的最佳时间: 按持有者从竞赛时间组中选择id、持有者、最小竞赛时间 因为您只需要前5项,所以让我们将该约束设置为: 按持有者顺序,按最小竞赛时间ASC,时间ASC限制5,从竞赛时

我有一张比赛记录表,保存着比赛记录。当某人完成比赛时,无论完成时间或位置是什么,记录都会被插入表中。我想获得前五名最佳车手,而不是前五名最佳时刻

请帮助我进行sql查询。顺便说一下,这些列是id、holder、rec_time、time、position

有了这些新信息,您可以尝试另一种方法:

首先,您需要知道每个持有者的最佳时间:

按持有者从竞赛时间组中选择id、持有者、最小竞赛时间

因为您只需要前5项,所以让我们将该约束设置为:

按持有者顺序,按最小竞赛时间ASC,时间ASC限制5,从竞赛时间组中选择id、持有者、最小竞赛时间

一旦您有了这个,您只需要id字段,以便:

按持有者顺序从race_time组中选择id,按minrace_time ASC,time ASC LIMIT 5

最后,您可以获得每一列:

选择*从比赛时间,其中id在选择id从比赛时间组中,由持有人按minrace\u时间ASC排序,时间ASC限制5

根据您对最佳持有者的最新定义,这将为您提供前5名不同的持有者

以前

我把前面的答案留在这里,因为没有它,评论将是胡说八道

假设race是表名,第一个位置为1,第二个位置为2,以此类推

SELECT * FROM race ORDER BY position LIMIT 5;

这是一个非常基本的查询,您应该去做一些您没有指定的“最佳”赛车手。当您将其定义为具有最佳平均位置的赛车手时,您的查询将变成:

SELECT holder, AVG(position) AS average_position 
FROM race 
GROUP BY holder
ORDER BY AVG(position) ASC
LIMIT 5

它应基于记录时间记录时间和最早记录时间。如果有人对之前已经存在的记录执行相同的录制时间,则不会将其视为记录。较旧的记录必须仍然有效。我知道如何进行sql查询:D,但这将返回同一个人的两倍于返回多个最佳记录的两倍。我想要的是前五名记录保持者,而不是前五名。然后你应该去编辑你的问题并陈述。还定义了什么是记录持有者:-我还尝试了从race Records中选择holder、rec_time,其中race_id=17按持有者分组按rec_time ASC限制5;它会返回第一个记录最好的人。如果第一次记录与持有者A一起插入,它将返回A的最佳比赛记录,即使这不是所有参赛者中的最佳时间。记录保持者是赛车手的昵称:D记录时间和时间是什么?他们之间有什么区别?还请注意,您没有输入race_id,在您对我尝试回答的评论中,您使用了race_id字段。你能更清楚地阐述你的问题吗?记录时间是比赛时间,时间是unix时间戳。假设我们有5张唱片。第一个在1月8日进行,比赛时间为01:14,第二个在2月9日进行,比赛时间为01:14,第三个在7月10日进行,比赛时间为01:17,第四个在7月11日进行,比赛时间为01:16,最后一个在7月12日进行,比赛时间为01:15,因此订单应在1月8日进行,因为这是最早的第二个是2月9日,因为这是第二个最好的时间,第三个必须是7月12日,因为这是第三个最好的时间,即使时间太迟,第四个应该是1月8日,最后一个应该是7月10日。在SQL查询方式中:ORDER BY rec_time ASC,time ASC ALL race_id是比赛的id。别为此烦恼了。