<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

    問題:對于數字列中的值,計算其累計差。例如,計算DEPTNO 10中工資的累計差。要返回下列結果集:

    ENAME              SAL RUNNING_DIFF

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

    MILLER            1300          1300

    CLARK             2450         -1150

    KING              5000         -6150

    解決方案

    DB2和Oracle

    使用窗口函數SUM OVER創建累計差:

    1   select ename,sal,

    2          sum(case when rn = 1 then sal else -sal end)

    3           over(order by sal,empno) as running_diff<>5   select empno,ename,sal,

    6          row_number()over(order by sal,empno) as rn

    7     from emp

    8    where deptno = 10

    9          ) x

    MySQL、PostgreSQL和SQL Server

    使用標量子查詢計算累計差:

    1 select a.empno, a.ename, a.sal,

    2         (select case when a.empno = min(b.empno) then sum(b.sal)

    3                      else sum(-b.sal)

    4                 end

    5            from emp b

    6           where b.empno <= a.empno

    7             and b.deptno = a.deptno ) as rnk

    8    from emp a

    9   where a.deptno = 10

    討論

    該解決方案與“生成累計和”一節介紹的解決方案大致相同。唯一的差別是:SAL除了第一個值(因為要從DEPTNO 10的SAL開始)之外,其余所有值都返回負值。

    posted on 2008-05-14 21:42 紙飛機 閱讀(570) 評論(0)  編輯  收藏 所屬分類: Database
    主站蜘蛛池模板: 9i9精品国产免费久久| 真人无码作爱免费视频| 中文字幕日韩亚洲| 亚洲精品人成网线在线播放va| 一级特级女人18毛片免费视频| 久久免费的精品国产V∧| 亚洲开心婷婷中文字幕| 国产精品偷伦视频观看免费 | 爱丫爱丫影院在线观看免费| 亚洲人成免费网站| 亚洲黄色网站视频| 四虎影视久久久免费| 国产成人毛片亚洲精品| 亚洲五月综合网色九月色| a毛片在线看片免费| 俄罗斯极品美女毛片免费播放| 日产亚洲一区二区三区| 四虎一区二区成人免费影院网址| 亚洲午夜av影院| 久久成人免费大片| 免费无码又爽又刺激高潮的视频| 亚洲精品视频在线播放| 国产情侣激情在线视频免费看| 亚洲综合久久精品无码色欲| 最近2019中文字幕免费看最新| 全免费一级午夜毛片| 国产精品亚洲精品日韩动图| 在线观看亚洲av每日更新| 亚洲AV无码之国产精品| 久久久久久精品免费免费自慰| 在线亚洲午夜理论AV大片| a色毛片免费视频| 亚洲国产精品久久久久秋霞影院| 一级午夜a毛片免费视频| 久久久综合亚洲色一区二区三区 | 日产乱码一卡二卡三免费| eeuss草民免费| 亚洲一区二区三区91| 亚洲人成色77777在线观看大| 国产综合成人亚洲区| 久久青青成人亚洲精品|