MySQL-显示最新的成功测试
如何通过程序获得所有最新的成功测试?最新的一个具有最高的构建数量,成功的都是通过的和关注的 我的表如下所示(我从原始表中排除了一些列): 因此,我希望得到行(ID)1,4,7,8。正如您所看到的,没有程序具有多个相同的测试MySQL-显示最新的成功测试,mysql,Mysql,如何通过程序获得所有最新的成功测试?最新的一个具有最高的构建数量,成功的都是通过的和关注的 我的表如下所示(我从原始表中排除了一些列): 因此,我希望得到行(ID)1,4,7,8。正如您所看到的,没有程序具有多个相同的测试 编辑: 向表中添加了一些缺少的信息。 遗憾的是,我不再有这些查询了,我试过了,但我没有在何处和订购地方面走得很远。这个查询应该可以做到这一点 SELECT t3.* FROM ( SELECT t1.ID,
编辑: 向表中添加了一些缺少的信息。
遗憾的是,我不再有这些查询了,我试过了,但我没有在何处和订购地方面走得很远。这个查询应该可以做到这一点
SELECT t3.*
FROM (
SELECT t1.ID,
MAX(t1.Build) as Build
FROM table_name t1
WHERE LOWER(t1.Result) NOT IN( 'n/a', 'not completed', 'not tested' )
GROUP BY t1.Test, t1.Program
) t2
INNER JOIN table_name t3
ON t3.ID = t2.ID
AND t3.Build = t2.Build;
不幸的是,由于分组限制,它有点复杂
请用正确的名称替换表名(2处)是的,您是正确的。我删除了一个不需要的子查询。不幸的是,我仍然得到未完成的测试。你是什么意思?您得到的结果值是多少?某些给定的结果仍然包含“不适用”和“未完成”。您的意思是“未完成”还是“未测试”?你能提供不正确的结果行吗?是的,我试着按构建排序,过滤掉所有成功的测试,然后按测试和程序分组。
SELECT t3.*
FROM (
SELECT t1.ID,
MAX(t1.Build) as Build
FROM table_name t1
WHERE LOWER(t1.Result) NOT IN( 'n/a', 'not completed', 'not tested' )
GROUP BY t1.Test, t1.Program
) t2
INNER JOIN table_name t3
ON t3.ID = t2.ID
AND t3.Build = t2.Build;