<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 紙飛機 閱讀(360) 評論(0)  編輯  收藏 所屬分類: Database
    主站蜘蛛池模板: 四虎精品免费永久免费视频| 亚洲日本在线电影| 国产免费AV片在线观看播放| 无码国模国产在线观看免费| 亚洲精品国产精品| 国产成人啪精品视频免费网| 日本中文字幕免费看| 国产亚洲成人在线播放va| 国产成人自产拍免费视频| 亚洲毛片αv无线播放一区| 在线观看免费视频网站色| 久久亚洲国产午夜精品理论片| 国内精品99亚洲免费高清| 亚洲国产精品国自产电影| 精品免费人成视频app| 亚洲永久在线观看| 国产免费131美女视频| 4hu四虎免费影院www| 亚洲αv在线精品糸列| 2022久久国产精品免费热麻豆| 激情内射亚洲一区二区三区爱妻| 在线免费观看一级片| 一二三四在线观看免费中文在线观看 | 无码精品人妻一区二区三区免费看 | 一级毛片免费观看不卡视频| 亚洲日本香蕉视频| 国产精品酒店视频免费看| 亚洲高清免费视频| 亚洲精品中文字幕无码AV| 成人人免费夜夜视频观看| 人人鲁免费播放视频人人香蕉| 国产亚洲精品岁国产微拍精品| 91网站免费观看| 老司机精品视频免费| 久久亚洲精品成人AV| 国产一区在线观看免费| 老司机69精品成免费视频| 亚洲一区精彩视频| 亚洲精品无码国产| 女性自慰aⅴ片高清免费| 美女网站在线观看视频免费的|