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

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

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

    紙飛機

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

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

    解決方案

    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

    使用內聯視圖及窗口函數MAX OVER和MIN OVER,生成一個結果集,可以很容易地從中剔除最大和最小值:

    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,就可以從平均值中排除最高工資和最低工資。記住,如果存在重復(多個職員都是最高或最低工資),那么他們都會被排除在平均值之外。如果只想排除一個最高和最低值,只需從SUM中減去它們,再做除法:

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

       from emp

    DB2、Oracle和SQL Server

    內聯視圖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

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

    posted on 2008-05-14 21:49 紙飛機 閱讀(1764) 評論(0)  編輯  收藏 所屬分類: Database
    主站蜘蛛池模板: 免费国产午夜高清在线视频| 美女黄频免费网站| 91在线老王精品免费播放| 亚洲精品~无码抽插| 国产在线观看免费av站| 在线观看国产区亚洲一区成人| 色多多免费视频观看区一区| 哒哒哒免费视频观看在线www | 国产VA免费精品高清在线| 国产亚洲精品免费| 国产成人免费高清在线观看 | 成人毛片100免费观看| 精品国产人成亚洲区| 好吊色永久免费视频大全| 亚洲国产成人高清在线观看| 亚洲欧美国产国产一区二区三区 | 99久久99久久精品免费看蜜桃| 亚洲国产精品xo在线观看| 成人免费无码视频在线网站| 亚洲国产精品无码久久久秋霞1| 国产免费资源高清小视频在线观看| 无套内射无矿码免费看黄| 亚洲精品美女久久久久99小说| 在线观看片免费人成视频播放| 亚洲AV无码一区东京热| 亚洲天堂免费在线| 蜜臀亚洲AV无码精品国产午夜.| 国产aⅴ无码专区亚洲av麻豆| 亚洲欧洲免费视频| 亚洲午夜无码毛片av久久京东热| 免费jjzz在在线播放国产| 免费观看在线禁片| 亚洲人成网站色在线观看| 亚洲精品动漫人成3d在线| 无码精品人妻一区二区三区免费看| 成人亚洲国产va天堂| mm1313亚洲精品无码又大又粗| 国产免费无码一区二区| 在线观看亚洲AV日韩AV| 国产亚洲美日韩AV中文字幕无码成人| 香蕉免费一区二区三区|