Column Mode: 0 1 0 1
Column Value1: 5 6 4 8
Column Value2: 10 7 5 20
如何基于模式获取平均值,例如模式0,它将从Value1列中获取值,而1将从Value2列中获取值
平均=(5 + 7 + 4 + 20)/ 4 = 9
答案 0 :(得分:0)
以下可能有效
select (val1+val2)/2 from
(select sum(case when mode =0 then value1 end) as val1 ,
sum(case when mode=1 then value2 end) as val2
) t
或
select avg(case mode when 0 then Value1
when 1 then Value2
else 0 end) from t
答案 1 :(得分:0)
您可以使用mysql CASE
语句根据mode的值选择value1或value2。
以下查询将为您工作。
SELECT
AVG(CASE
WHEN mode = 0 THEN value1
WHEN mode = 1 THEN value2
END)
FROM test