oralce优化

select sign(100), sign(-100), sign(0) from dual; -->0=1 <0=-1 =0=0
select decode(1, 1, 1, 2),
       decode(1, -1, 1, 2),
       decode(4, -1, 1, 2, 3, 4, 5)
  from dual;
---计算那些人盈利1,那些人亏损0
select t.account, decode(sign(sum(t.pcyk)), 1, 1, 0)
  from cybtest t
 group by t.account, t.jydh;
--计算胜率
select x.account, sum(x.cs), count(cs), sum(x.cs) / count(cs)
  from (select t.account, decode(sign(sum(t.pcyk)), 1, 1, 0) cs
          from cybtest t
         group by t.account, t.jydh) x
 group by x.account
 --列变行
select 'x' as name,0 value from dual
union all 
select 'y' as name,2 value from dual
union all
select 'z' as name,0 value from dual

你可能感兴趣的:(数据库)