gpt4 book ai didi

mysql - 当平均行大于某个数字时用mysql计算行的平均值

转载 作者:行者123 更新时间:2023-11-29 06:25:47 25 4
gpt4 key购买 nike

我有一个计算行平均值的查询。单行的平均值由非空值组成。好吧,这行得通。我现在想要的是仅在平均值大于某个数字时才计算该行。现在它正在使用所有行。我怎样才能完成这项工作?

id | p_cijfer | b_cijfer | c_cijfer | c_id
----------------------------------------------
1 | 4 | 4 | 0 | 3 average = 4
----------------------------------------------
2 | 8 | 6 | 6 | 3 average = 6.7
----------------------------------------------
3 | 10 | 6 | 8 | 3 average = 8
----------------------------------------------
1 | 4 | 4 | 0 | 1 average = 4
----------------------------------------------

现在我只想计算平均值高于 6 的行的平均值。这将导致只计算记录 2 和 3。输出必须是 id 的 2 和 3 的平均值,平均值 = (6.7+8)/2=7.5

select 

AVG(((reviews.prijs_cijfer+
reviews.planning_cijfer+
reviews.betrouwbaarheid_cijfer +
reviews.communicatie_cijfer +
reviews.kennis_cijfer +
reviews.innovatie_cijfer
) /
nullif(
case when prijs_cijfer=0 then 0 else 1 end +
case when planning_cijfer=0 then 0 else 1 end +
case when betrouwbaarheid_cijfer=0 then 0 else 1 end +
case when communicatie_cijfer=0 then 0 else 1 end +
case when kennis_cijfer=0 then 0 else 1 end +
case when innovatie_cijfer=0 then 0 else 1 end , 0)))
from reviews

最佳答案

您可以使用子查询来应用过滤器。

select c_id, avg(rows.rowavg) filteredavg, count(rows.rowavg) affecting
from (
select
c_id c_id,
((reviews.prijs_cijfer+
reviews.planning_cijfer+
reviews.betrouwbaarheid_cijfer +
reviews.communicatie_cijfer +
reviews.kennis_cijfer +
reviews.innovatie_cijfer
) /
nullif(
case when prijs_cijfer=0 then 0 else 1 end +
case when planning_cijfer=0 then 0 else 1 end +
case when betrouwbaarheid_cijfer=0 then 0 else 1 end +
case when communicatie_cijfer=0 then 0 else 1 end +
case when kennis_cijfer=0 then 0 else 1 end +
case when innovatie_cijfer=0 then 0 else 1 end , 0)) rowavg
from reviews
) rows
where rows.rowavg > 6
group by c_id

关于mysql - 当平均行大于某个数字时用mysql计算行的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31078764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com