MySQL-显示最新的成功测试

MySQL-显示最新的成功测试,mysql,Mysql,如何通过程序获得所有最新的成功测试?最新的一个具有最高的构建数量,成功的都是通过的和关注的 我的表如下所示(我从原始表中排除了一些列): 因此,我希望得到行(ID)1,4,7,8。正如您所看到的,没有程序具有多个相同的测试 编辑: 向表中添加了一些缺少的信息。 遗憾的是,我不再有这些查询了,我试过了,但我没有在何处和订购地方面走得很远。这个查询应该可以做到这一点 SELECT t3.* FROM ( SELECT t1.ID,

如何通过程序获得所有最新的成功测试?最新的一个具有最高的构建数量,成功的都是通过的和关注的

我的表如下所示(我从原始表中排除了一些列):

因此,我希望得到行(ID)1,4,7,8。正如您所看到的,没有程序具有多个相同的测试


编辑: 向表中添加了一些缺少的信息。
遗憾的是,我不再有这些查询了,我试过了,但我没有在何处和订购地方面走得很远。

这个查询应该可以做到这一点

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;