我正在尝试生成一个MySQL表,其中包含一列显示一个计数与另一个计数相同的百分比。总体而言,我想将以下两个查询合并为一个显示百分比而不是显示计数的查询。下面是这两个疑问:计算MySQL查询中的百分比
SELECT machine, COUNT(machine)
FROM rtcdb.session
WHERE project = "CSC032"
AND (qc_gsr = 'green'
AND qc_hr = 'green'
AND qc_acz = 'green'
AND qc_bre = 'green'
)
GROUP BY machine;
&
SELECT machine, COUNT(machine)
FROM rtcdb.session
WHERE project = "CSC032"
GROUP BY machine;
有场景中的第一个查询会产生小于第二行 - 当有没有任何成功的机器(果岭出现这种情况)。我如何将这些查询合并为一个计算所有成功机器的百分比(本质上,成功率),并将其显示在自己的列中?
感谢您的帮助,真的很感激。您所写的查询将我置于正确的方向,但不幸的是计算出不准确的值(我不确定的原因)。看起来你的查询正在产生比实际应该高得多的百分比。例如,与其中一台机器的green_nb计数相比,它提出了11,这是该机器的总计数。看起来green_nb的数字会出现一个总数等于或略低于总数的数字。有任何想法吗? – jakelaz
也许你应该使用'DISTINCT'。但是我不明白的是,如果你通过'machine'来计算'machine'和group,它应该总是返回1.你能提供一个[SQLFiddle](http://sqlfiddle.com/)吗? –
我想通了!这是我现在有: – jakelaz