<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    紙飛機

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      22 隨筆 :: 28 文章 :: 30 評論 :: 0 Trackbacks

    問題:計算平均數(shù),但希望排除最大和最小值,以(希望能)減少數(shù)據(jù)畸偏造成的影響。例如,計算除最高和最低工資外的所有職員的平均工資。

    解決方案

    MySQL和PostgreSQL

    使用子查詢排除最高和最低值:

    1   select avg(sal)

    2     from emp

    3    where sal not in (

    4       (select min(sal) from emp),

    5       (select max(sal) from emp)

    6    )

    DB2、Oracle和SQL Server

    使用內(nèi)聯(lián)視圖及窗口函數(shù)MAX OVER和MIN OVER,生成一個結(jié)果集,可以很容易地從中剔除最大和最小值:

    1   select avg(sal)

    2     from (

    3   select sal, min(sal)over() min_sal, max(sal)over() max_sal

    4     from emp

    5          ) x

    6    where sal not in (min_sal,max_sal)

    討論

    MySQL和PostgreSQL

    子查詢返回表中的最高工資和最低工資。針對返回的值使用NOT IN,就可以從平均值中排除最高工資和最低工資。記住,如果存在重復(fù)(多個職員都是最高或最低工資),那么他們都會被排除在平均值之外。如果只想排除一個最高和最低值,只需從SUM中減去它們,再做除法:

    select (sum(sal)-min(sal)-max(sal))/(count(*)-2)

       from emp

    DB2、Oracle和SQL Server

    內(nèi)聯(lián)視圖X將返回所有工資,其中包括最高工資和最低工資:

    select sal, min(sal)over() min_sal, max(sal)over() max_sal

       from emp

           SAL    MIN_SAL    MAX_SAL

    --------- --------- ---------

           800        800       5000

          1600        800       5000

          1250        800       5000

          2975        800       5000

          1250        800       5000

          2850        800       5000

          2450        800       5000

          3000        800       5000

          5000        800       5000

          1500        800       5000

          1100        800       5000

           950        800       5000

          3000        800       5000

          1300        800       5000

    從每一行都可以訪問最高工資和最低工資,因此,要找出哪些工資是最高工資的和/或最低工資的非常簡單。外層查詢會對內(nèi)聯(lián)視圖X返回的行作篩選,這樣,所有與MIN_SAL和MAX_SALAN相匹配的行都會從平均值中排除掉。

    posted on 2008-05-14 21:49 紙飛機 閱讀(1771) 評論(0)  編輯  收藏 所屬分類: Database
    主站蜘蛛池模板: 免费看黄的成人APP| 精品成人免费自拍视频| 国产免费久久精品| 一区二区视频免费观看| 亚洲av中文无码乱人伦在线播放 | 少妇性饥渴无码A区免费| 亚洲熟妇无码AV不卡在线播放| 日日夜夜精品免费视频| 男女一边摸一边做爽的免费视频| 亚洲va无码手机在线电影| 亚洲AⅤ无码一区二区三区在线 | 国产大片91精品免费观看不卡| 国产精品亚洲一区二区三区在线 | 亚洲一区精品视频在线| 真实乱视频国产免费观看| 久久免费视频一区| 美女视频黄a视频全免费网站一区 美女视频黄a视频全免费网站色 | 毛片免费观看的视频| 欧洲美女大片免费播放器视频| 婷婷久久久亚洲欧洲日产国码AV| 无码高潮少妇毛多水多水免费| 91av免费观看| 成人午夜免费视频| 亚洲国产成人精品无码区在线秒播| 一本色道久久88亚洲综合| 在线不卡免费视频| 久久狠狠躁免费观看2020| 美女又黄又免费的视频| 亚洲精品无码专区久久| 亚洲国产精品人久久| 国产jizzjizz免费视频| 四虎在线视频免费观看| 成年女人男人免费视频播放| 黄色成人免费网站| 一本无码人妻在中文字幕免费| 中文字幕av免费专区| 国产亚洲蜜芽精品久久| 亚洲三级在线免费观看| 亚洲中文字幕日本无线码| 亚洲动漫精品无码av天堂| 亚洲 综合 国产 欧洲 丝袜|