<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

    問題:對某列進行聚集運算,但該列的值可為空,由于函數會忽略NULL值,能否保持聚集運算的準確性令人擔憂。例如,想要求DEPTNO 30中職員的平均傭金,但有些職員不掙傭金(這些職員的COMM值為NULL)。由于聚集運算會忽略NULL,因此輸出結果的準確性沒有保障。在進行聚集運算時有時可能需要以某種方式將NULL值包括進來。

    解決方案

    使用COALESCE函數把NULL轉換為0,這樣在進行聚集時可以把它們包括進來:

    1   select avg(coalesce(comm,0)) as avg_comm

    2     from emp

    3    where deptno=30

    討論

    請務必記住,在使用聚集函數時會忽略NULL。不使用COALESCE函數時該解決方案的輸出如下:

    select avg(comm)

       from emp

    where deptno=30

    AVG(COMM)

    ---------

           550

    該查詢表明,DEPTNO 30的平均傭金是550,快速檢查這些行如下:

    select ename, comm

       from emp

    where deptno=30

    order by comm desc

    ENAME            COMM

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

    BLAKE

    JAMES

    MARTIN           1400

    WARD              500

    ALLEN             300

    TURNER              0

    這表明六個職員中只有四個職員掙得傭金。DEPTNO 30中所有傭金的總和是2200,其平均值應該是2200/6,而不是2200/4。如果不用COALESCE函數,回答的是問題“DEPTNO 30中掙得傭金的職員的平均傭金是多少?”,而不是“DEPTNO 30中所有職員的平均傭金是多少?”。使用聚集時記住要相應處理NULL值。

    posted on 2008-05-14 21:47 紙飛機 閱讀(359) 評論(0)  編輯  收藏 所屬分類: Database
    主站蜘蛛池模板: 国产免费卡一卡三卡乱码| 一二三四视频在线观看中文版免费| 国产成人3p视频免费观看 | 久久综合给合久久国产免费| 精品亚洲永久免费精品| 日本一区午夜艳熟免费| 国产gv天堂亚洲国产gv刚刚碰| 亚洲黄片手机免费观看| 综合亚洲伊人午夜网| 日韩精品免费视频| 亚洲精品美女在线观看| 成年网站免费视频A在线双飞| 亚洲一线产品二线产品| 哒哒哒免费视频观看在线www| 免费看一级一级人妻片 | ass亚洲**毛茸茸pics| 毛片在线看免费版| 久久精品国产亚洲av品善| 亚洲国产专区一区| 国产偷伦视频免费观看| 亚洲国产中文在线二区三区免| 四虎永久在线精品免费网址| 国产区图片区小说区亚洲区| 久久久久亚洲精品无码网址| 精品视频在线免费观看| 亚洲an日韩专区在线| vvvv99日韩精品亚洲| 欧洲人免费视频网站在线| 亚洲国产精品久久人人爱| 日本a级片免费看| 爱丫爱丫影院在线观看免费| 亚洲午夜电影在线观看高清| 国产高清免费在线| 女人体1963午夜免费视频| 亚洲精品无码少妇30P| 伊人久久精品亚洲午夜| 国产桃色在线成免费视频| 免费大片黄在线观看| 亚洲色成人网一二三区| 国产免费观看青青草原网站| 免费av一区二区三区|