zoukankan      html  css  js  c++  java
  • sql 语句系列(计算的进阶)[八百章之第十六章]

    前言

    介绍两个实用的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
    
  • 相关阅读:
    BZOJ 3330 分数
    FR #11题解
    BZOJ 1857 传送带
    BZOJ 4757 Building a Tall Barn
    FR #10题解
    BZOJ 4393 Fruit Feast
    BZOJ 3126 Photo
    BZOJ 1312 Hard Life
    BZOJ 2039 employ人员雇佣
    Count SIN Numbers
  • 原文地址:https://www.cnblogs.com/aoximin/p/12617111.html
Copyright © 2011-2022 走看看