Kom godt i gang med SQL


OLAP-funktioner

OLAP-funktioner (OnLine Analytical Processing) udfører beregningsfunktioner over et vindue af data. Vinduet kan angive en inddeling af rækker, en opstilling af rækkerne i inddelingerne eller en beregningsgruppe. Vha. beregningsfunktionen kan brugeren angive, hvilke rækker i forhold til den aktuell række der skal indgå i beregningen. Brugen af et sådan vindue gør det f.eks. muligt at udregne akkumuleret sum og bevægeligt gennemsnit.

Ud over de eksisterende beregningsfunktioner som SUM og AVG kan OLAP-funktionerne opstille elementer på en liste (RANK og DENSE_RANK) og nummerere rækker (ROW_NUMBER) ud fra en bestemt inddeling og opstilling af rækker.

I forespørgslen nedenfor vises medarbejdernes placering på lønningslisten og den samlede lønsum i afdeling 15 og 38:

     SELECT NAME, DEPT,
            RANK () OVER (PARTITION BY DEPT ORDER BY SALARY DESC) AS RANK,
            SUM (SALARY) OVER (PARTITION BY DEPT
                               ORDER BY SALARY DESC
                               ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
                AS CUMULATIVE_SUM
        FROM STAFF
        WHERE DEPT IN (15,38)
        ORDER BY DEPT, RANK

Resultatet er:

     NAME       DEPT      RANK       CUMULATIVE_SUM
     ---------- --------- ---------- --------------------
     Hanes      15                 1             20659.80
     Rothman    15                 2             37162.63
     Ngan       15                 3             49670.83
     Kermisch   15                 4             61929.33
     O'Brien    38                 1             18006.00
     Marenghi   38                 2             35512.75
     Quigley    38                 3             52321.05
     Naughton   38                 4             65275.80
     Abrahams   38                 5             77285.55


[ Øverst på siden | Forrige side | Næste side | Indholdsfortegnelse | Stikordsregister ]