Mega Code Archive

 
Categories / Oracle PLSQL Tutorial / Analytical Functions
 

PARTITION BY (JOB title) and right outer join

SQL>  create table emp   2  ( empno      NUMBER(4)    constraint E_PK primary key   3  , ename      VARCHAR2(8)   4  , init       VARCHAR2(5)   5  , job        VARCHAR2(8)   6  , mgr        NUMBER(4)   7  , bdate      DATE   8  , sal        NUMBER(6,2)   9  , comm       NUMBER(6,2)  10  , deptno     NUMBER(2)    default 10  11  ) ; Table created. SQL> insert into emp values(1,'Tom','N',   'TRAINER', 13,date '1965-12-17',  800 , NULL,  20); 1 row created. SQL> insert into emp values(2,'Jack','JAM', 'Tester',6,date '1961-02-20',  1600, 300,   30); 1 row created. SQL> insert into emp values(3,'Wil','TF' ,  'Tester',6,date '1962-02-22',  1250, 500,   30); 1 row created. SQL> insert into emp values(4,'Jane','JM',  'Designer', 9,date '1967-04-02',  2975, NULL,  20); 1 row created. SQL> insert into emp values(5,'Mary','P',  'Tester',6,date '1956-09-28',  1250, 1400,  30); 1 row created. SQL> insert into emp values(6,'Black','R',   'Designer', 9,date '1963-11-01',  2850, NULL,  30); 1 row created. SQL> insert into emp values(7,'Chris','AB',  'Designer', 9,date '1965-06-09',  2450, NULL,  10); 1 row created. SQL> insert into emp values(8,'Smart','SCJ', 'TRAINER', 4,date '1959-11-26',  3000, NULL,  20); 1 row created. SQL> insert into emp values(9,'Peter','CC',   'Designer',NULL,date '1952-11-17',  5000, NULL,  10); 1 row created. SQL> insert into emp values(10,'Take','JJ', 'Tester',6,date '1968-09-28',  1500, 0,     30); 1 row created. SQL> insert into emp values(11,'Ana','AA',  'TRAINER', 8,date '1966-12-30',  1100, NULL,  20); 1 row created. SQL> insert into emp values(12,'Jane','R',   'Manager',   6,date '1969-12-03',  800 , NULL,  30); 1 row created. SQL> insert into emp values(13,'Fake','MG',   'TRAINER', 4,date '1959-02-13',  3000, NULL,  20); 1 row created. SQL> insert into emp values(14,'Mike','TJA','Manager',   7,date '1962-01-23',  1300, NULL,  10); 1 row created. SQL> SQL> create table departments   2  ( deptno NUMBER(2)     constraint D_PK primary key   3  , dname  VARCHAR2(10)   4  , location VARCHAR2(8)   5  , mgr    NUMBER(4)   6  ) ; Table created. SQL> SQL> insert into departments values (10,'ACCOUNTING','NEW YORK',7); 1 row created. SQL> insert into departments values (20,'TRAINING',  'DALLAS',  4); 1 row created. SQL> insert into departments values (30,'SALES',     'CHICAGO', 6); 1 row created. SQL> insert into departments values (40,'HR',        'BOSTON',  9); 1 row created. SQL> SQL> select d.dname as department   2  ,      e.job   as job   3  ,      e.ename as emp   4  from   emp e   5         PARTITION BY (JOB)   6         right outer join   7         departments d   8         using (deptno)   9  order  by department, job; DEPARTMENT JOB      EMP ---------- -------- -------- ACCOUNTING Designer Chris                     Peter            Manager  Mike            Tester            TRAINER HR         Designer            Manager            Tester            TRAINER SALES      Designer Black            Manager  Jane            Tester   Mary                     Jack                     Wil                     Take            TRAINER DEPARTMENT JOB      EMP ---------- -------- -------- TRAINING   Designer Jane            Manager            Tester            TRAINER  Fake                     Smart                     Tom                     Ana 23 rows selected. SQL> SQL> --clear breaks SQL> SQL> drop table emp; Table dropped. SQL> drop table departments; Table dropped.