Я пытаюсь создать таблицу MySQL, содержащую столбец, отображающий процент, соответствующий одному счету над другим с той же группировкой. В общем, я хочу объединить следующие два запроса в один, который вместо отображения счета отображает процент. Вот два запроса:Вычислить проценты в MySQL Query
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;
Есть сценарии, где первый запрос будет производить меньше строк, чем второй - это происходит, когда есть машины, которые не имеют каких-либо успехов (зелень) вообще. Как объединить эти запросы в один, который вычисляет процент всех успешных машин (по сути, показатель успеха) и отображает это в своем столбце?
Благодарим вас за помощь, очень цените это. Запрос, который вы написали, ставит меня в правильном направлении, но, к сожалению, вычисляет неточные значения (причина которых я не уверен). Кажется, ваш запрос производит гораздо больший процент, чем тот, который на самом деле должен быть. Например, вместо того, чтобы придумать 2 для подсчета green_nb для одной из машин, он набирает 11, что является общим количеством этой машины. Кажется, что счетчик green_nb подходит к числу, которое последовательно равно или немного меньше общего счета. Есть идеи? – jakelaz
Возможно, вы должны использовать 'DISTINCT'. Но я не понимаю, что если вы считаете 'machine' и group' machine', он всегда должен возвращать 1. Не могли бы вы предоставить [SQLFiddle] (http://sqlfiddle.com/)? –
Я понял! Это то, что у меня есть сейчас: – jakelaz