如何在GROUP BY

时间:2018-03-13 12:03:07

标签: mysql count

我是Mysql语言和php的新手。 我正在为我的公司做一个网站。 我使用这句话(1)

SELECT * FROM motocontroltestresult WHERE id IN (SELECT MAX(id) AS id FROM motocontroltestresult WHERE $variable1 GROUP BY test_name) ORDER BY test_result DESC

从我的数据库中获取不同测试名称的列表。 我想要做的是计算通过”和“失败”的数量并将其保存在变量中。 此信息位于 test_result

我知道我可以这样做:

SELECT test_result, count(test_result) FROM motocontroltestresult GROUP by test_result

得到这样的东西:

Test Result | Count(test_result)
Passed        365
Failed        60

但它给了我所有的事情。我只想用我使用(1)的语句来获取我的不同值列表(test_name)

因为在我的数据库中,我有几行具有相同的test_name,但我只想计算最后一行。

我只需要Mysql中的语句。

编辑:

我会详细说明。 在我的网站上,我有过滤器,用户可以选择。它指的是库版本。在他选择了他的版本之后,他可以看到一个包含该库版本的所有测试的表格。 但是在我的数据库中,它们是具有相同test_name的几个记录。想象一下,有人做了一个测试而且失败了,有人只是“通过”了这个测试。我的数据库中有2条记录。 使用语句(1),我可以选择所有不同的测试。我总是选择值为test_result =“Passed”的最后一个测试。我添加了一列“运行”,您可以在其中查看此测试的运行次数。 它运作得很好。

现在我只想计算每个库的失败/通过次数。在我的代码中你可以看到 $ variable1 ,它只是我的库版本。

是否有可以提供给我的SQL语句?

先谢谢你。

Nordine。

0 个答案:

没有答案