SQL查询以获取平均情况,如下所示或如何使用休眠条件

时间:2018-09-07 09:24:07

标签: mysql sql hibernate

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

2 个答案:

答案 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