MJN All Blog Cheatsheets Elasticsearch GCP JS LinuxBash Misc Notes Other ShortcutKeys / - Search

Home / Other / Oracle / Oracle Window Functions


CREATE TABLE mjn (g NUMBER, n NUMBER, v VARCHAR2(8));

INSERT INTO mjn VALUES (1, 1, 'a');
INSERT INTO mjn VALUES (1, 2, 'b');
INSERT INTO mjn VALUES (1, 6, 'c');
INSERT INTO mjn VALUES (1, 7, 'd');
INSERT INTO mjn VALUES (1, 9, 'e');
INSERT INTO mjn VALUES (2, 3, 'a');
INSERT INTO mjn VALUES (2, 4, 'b');
INSERT INTO mjn VALUES (2, 8, 'c');
INSERT INTO mjn VALUES (2, 8, 'd');

SELECT N
     , LAG(N,1,NULL) OVER (PARTITION BY g ORDER BY N) prev_n
     , LEAD(N,1,NULL) OVER (PARTITION BY G ORDER BY N) next_n
     , FIRST_VALUE(N) OVER (PARTITION BY G ORDER BY N) first_n
     , LAST_VALUE(N) OVER (PARTITION BY G ORDER BY N) last_n
     , LAST_VALUE(N) OVER (PARTITION BY G ORDER BY N ROWS BETWEEN 
          UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) last_n_unbounded
     , V
     , LAG(V,1,NULL) OVER (PARTITION BY g ORDER BY N) prev_v 
FROM mjn;

         N     PREV_N     NEXT_N    FIRST_N     LAST_N LAST_N_UNBOUNDED V        PREV_V  
---------- ---------- ---------- ---------- ---------- ---------------- -------- --------
         1                     2          1          1                9 a                
         2          1          6          1          2                9 b        a       
         6          2          7          1          6                9 c        b       
         7          6          9          1          7                9 d        c       
         9          7                     1          9                9 e        d       
         3                     4          3          3                8 a                
         4          3          8          3          4                8 b        a       
         8          4          8          3          8                8 c        b       
         8          8                     3          8                8 d        c       

This page was generated by GitHub Pages. Page last modified: 20/11/30 18:32