前言
介绍两个实用的sql查询语句。
1.计算平均数时候,去除最大值和最小值。
2.修改累计值。
计算平均数时候,去除最大值和最小值
sql server:
select AVG(sal) from(
select sal,MIN(SAL) over() min_sal,MAX(SAL) max_sal
from EMP) x
where sal not in(
min_sal,max_sal
)
mysql:
select AVG(sal)
from EMP
where SAL not in(
(select MIN(sal) from EMP),
(select MAX(sal) from EMP)
)
修改累计值
假设有一张表:
select * from xinyong
要实现的效果如下:
就是当TRX 为pr的时候进行增,在py的时候进行减法。
答案:
select case when v.TRX='py' then 'PAYMENT' else 'PURCHASE' end as trx_type,v.AMT,
(select sum(case when x.TRX='py' then -x.AMT else x.AMT end)
from xinyong x
where v.ID>=x.ID
) as balance
from xinyong v