我有一个工作正常的查询,但我想在哪里进行更改。
查询计算 的所有笔记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 我可以给每个人 2 个笔记,比如 Bio Part1 和 Bio Part2。
在我的例子中,我有两个人。
我在 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”,我必须得到平均 100% 的音符“3”。
现在我得到:
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”
有人有想法吗?