<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 紙飛機 閱讀(578) 評論(0)  編輯  收藏 所屬分類: Database
    主站蜘蛛池模板: 亚洲精品无码专区久久同性男| 免费无码不卡视频在线观看| 久久国产成人亚洲精品影院| 国产偷国产偷亚洲高清在线 | 在线精品自拍亚洲第一区| 免费做爰猛烈吃奶摸视频在线观看| 久久国产亚洲高清观看| 久久免费看黄a级毛片| 亚洲av无码国产综合专区| 很黄很黄的网站免费的| 亚洲一区二区三区久久久久| 永久免费AV无码国产网站| 亚洲欧洲无码AV不卡在线| 国产无遮挡裸体免费视频| 人人爽人人爽人人片A免费 | 日本黄页网址在线看免费不卡| 伊人久久亚洲综合影院| 免费一级全黄少妇性色生活片| 国产亚洲精品激情都市| 久久免费视频网站| 亚洲啪啪免费视频| 日韩在线免费看网站| 国产免费人成视频尤勿视频| 亚洲AV中文无码字幕色三| 亚洲一区免费视频| 色偷偷噜噜噜亚洲男人| 国产精品亚洲αv天堂无码| 女人体1963午夜免费视频| 亚洲精品123区在线观看| 免费国产人做人视频在线观看| 亚洲一区二区三区免费| 亚洲综合色丁香麻豆| 青青草国产免费久久久下载| 精品国产污污免费网站入口| 久久99亚洲网美利坚合众国| 日韩a级毛片免费观看| 两个人看的www高清免费观看| 亚洲专区一路线二| 亚洲综合最新无码专区| xxxx日本免费| 春意影院午夜爽爽爽免费|