数据库中有两个字段,p_value和p_flag,
其中p_flag可以为0或1,代表两种不同的方法,
如果p_flag 为 1,  这时 p_value 可以通过公式: p_value*1.2-10 来得到在采用0这种方式下得到的p_value值。现在要对p_value 求平均,方差,
而且为了统一p_flag的标准,要将p_flag为1的数据转化为p_flag为0的数据进行计算,想请教高手,怎么用一个sql语句直接就能算出结果。

解决方案 »

  1.   

    select decode(p_flag,1,p_value*1.2-10,p_value) as p_value from tablename
      

  2.   

    同意楼上的
    select decode(p_flag,1,p_value*1.2-10,p_value) as p_value from tablename楼主可以根据Dacode这个函数转化后,直接对这个结果进行运算select avg(P_value),variance(P_value)
    from
    (select decode(p_flag,1,p_value*1.2-10,p_value) as p_value 
      from tablename)
      

  3.   

    select 
    avg(case when p_flag = 0 then p_value else p_value*1.2-10 end )
    , variance(case when p_flag = 0 then p_value else p_value*1.2-10 end )
     from tablename