正しく動作するクエリがありますが、どこを変更したいですか。
クエリは のすべてのメモをカウントしますid_service = 89
。
音符は 0 から 3 までの数字です。
私のクエリは、これらすべてのメモをカウントして平均を取得します。
すべて正常に動作します。
私が望む変更は、彼が 1 から 3 (0 ではなく) の間のノートのみをカウントすることです。
どうすればそれができるのかわかりません。
例:
このクエリは、すべての条件で数値 3 を取得した時間をカウントします。
ここでクエリ:
SELECT round( avg( AVG =3 ) * count( AVG ) ) AS New
, sma_famille.famille
FROM (
SELECT ROUND( SUM( note ) / count( note ) ) AS AVG
, sma_famille.famille
, sma_agents.nom
FROM sma_notes
INNER JOIN sma_famille
ON sma_famille.id_service =89
INNER JOIN sma_agents
ON sma_notes.id_agent = sma_agents.id_agent
INNER JOIN sma_service_activite
ON sma_service_activite.id_activite = sma_notes.id_activite
AND sma_service_activite.id_famille = sma_famille.id_famille
AND sma_service_activite.id_service = sma_famille.id_service
GROUP BY sma_famille.famille, sma_agents.nom
) AS FN
LEFT JOIN sma_famille
ON sma_famille.id_service =89
AND FN.famille = sma_famille.famille
GROUP BY FN.famille
例:
Bio では、Bio Part1 と Bio Part2 のように 1 人あたり 2 つのメモを与えることができます。
私の例では、2 人の人物がいます。
Bio Part1 では両方に注記 "3" を付け、Bio Part2 では注記を付けていないため、注記 "0" が存在します!
ここに私のクエリの結果:
それが私が得るものです:
Note Math English Bio
1 0 0 0
2 0 0 2
3 0 0 0
それが私が欲しいものです:
Note Math English Bio
1 0 0 0
2 0 0 0
3 0 0 2
音符「0」がなければ、音符「3」で平均 100% を取得する必要があります。
今私は得る:
Note Math English Bio
1 0
2 0
3 2
そしてそうではない
Note Math English Bio
1 0 0 0
2 0 0 0
3 0 0 2
結果セットで「0」を取得するにはどうすればよいですか
誰でもアイデアはありますか?