Order by, range unbounded preceding : Order By « Select Query « Oracle PL / SQL






Order by, range unbounded preceding

  
SQL>
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>
SQL> select mgr, ename, sal
  2  ,      sum(sal) over
  3         ( order by mgr, sal
  4           range unbounded preceding
  5         ) as cumulative
  6  from   emp
  7  order  by mgr, sal;

       MGR ENAME           SAL CUMULATIVE
---------- -------- ---------- ----------
         4 Smart          3000       6000
         4 Fake           3000       6000
         6 Jane            800       6800
         6 Wil            1250       9300
         6 Mary           1250       9300
         6 Take           1500      10800
         6 Jack           1600      12400
         7 Mike           1300      13700
         8 Ana            1100      14800
         9 Chris          2450      17250
         9 Black          2850      20100
         9 Jane           2975      23075
        13 Tom             800      23875
           Peter          5000      28875

14 rows selected.

SQL>
SQL>
SQL> drop table emp;

Table dropped.

   
    
  








Related examples in the same category

1.Ordering data in the SELECT statement ascending
2.Order two columns
3.Query a number type column with order by desc
4.ORDER BY clause with more than one column:by the first column, and within that column, orders by the second
5.Specify ascending or descending for each column
6.Ordering data in the SELECT statement descending
7.Order the results by the average salary
8.Query specific columns with order by clause
9.Use aggregate function in order by clause
10.Query the same column in where statement and order by clause
11.order by 3, 2, 1
12.Get order number by using rownum column
13.DESC for descending
14.ORDER BY with all logic operators
15.Order by date value then by number value
16.Order by columns from different tables
17.Order by index
18.Order by job title ascending but birthday descending
19.Order by name and department number for salary higher than 1500
20.Order by price which is more than 50
21.Order by renamed column
22.Order by renamed column descendingly
23.Order by three columns
24.Order date value by only year field with extract() function
25.Order for one column descendingly