Using union in subquery : Union « Set « Oracle PL/SQL Tutorial






SQL>
SQL> CREATE TABLE emp (
  2    emp_id               NUMBER,
  3    ename             VARCHAR2(40),
  4    hire_date        DATE DEFAULT sysdate,
  5    end_date DATE,
  6    rate     NUMBER(5,2),
  7    CONSTRAINT emp_pk    PRIMARY KEY (emp_id)
  8  );

Table created.

SQL> INSERT INTO emp(emp_id, ename, hire_date,end_date, rate)VALUES (101, 'Mary', to_date('15-Nov-1961','dd-mon-yyyy'),null,169);

1 row created.

SQL> INSERT INTO emp(emp_id, ename, hire_date,end_date, rate)VALUES (102, 'Tom', to_date('16-Sep-1964','dd-mon-yyyy'),to_date('5-May-2004','dd-mon-yyyy'),135);

1 row created.

SQL> INSERT INTO emp(emp_id, ename, hire_date,end_date, rate)VALUES (104, 'Peter', to_date('29-Dec-1987','dd-mon-yyyy'),to_date('1-Apr-2004','dd-mon-yyyy'),99);

1 row created.

SQL> INSERT INTO emp(emp_id, ename, hire_date,end_date, rate)VALUES (105, 'Mike', to_date('15-Jun-2004','dd-mon-yyyy'),null,121);

1 row created.

SQL> INSERT INTO emp(emp_id, ename, hire_date,end_date, rate)VALUES (107, 'Less', to_date('2-Jan-2004','dd-mon-yyyy'),null,45);

1 row created.

SQL> INSERT INTO emp(emp_id, ename, hire_date,end_date, rate)VALUES (108, 'Park', to_date('1-Mar-1994','dd-mon-yyyy'),to_date('15-Nov-2004','dd-mon-yyyy'),220);

1 row created.

SQL> INSERT INTO emp(emp_id, ename, hire_date,end_date, rate)VALUES (110, 'Ink', to_date('4-Apr-2004','dd-mon-yyyy'),to_date('30-Sep-2004','dd-mon-yyyy'),84);

1 row created.

SQL> INSERT INTO emp(emp_id, ename, hire_date,end_date, rate)VALUES (111, 'Tike', to_date('23-Aug-1976','dd-mon-yyyy'),null,100);

1 row created.

SQL> INSERT INTO emp(emp_id, ename, hire_date,end_date, rate)VALUES (112, 'Inn', to_date('15-Nov-1961','dd-mon-yyyy'),to_date('4-Apr-2004','dd-mon-yyyy'),70);

1 row created.

SQL> INSERT INTO emp(emp_id, ename, hire_date,end_date, rate)VALUES (113, 'Kate', to_date('3-Mar-2004','dd-mon-yyyy'),to_date('31-Oct-2004','dd-mon-yyyy'),300);

1 row created.

SQL>
SQL>
SQL> SET ECHO ON
SQL> SELECT all_dates.emp_date, COUNT(*)
  2  FROM (
  3     SELECT hire_date emp_date
  4     FROM emp
  5     UNION ALL
  6     SELECT end_date
  7     FROM emp) all_dates
  8  GROUP BY all_dates.emp_date
  9  ORDER BY COUNT(*) DESC;
                   4
15-NOV-61          2
04-APR-04          2
02-JAN-04          1
03-MAR-04          1
01-APR-04          1
05-MAY-04          1
15-JUN-04          1
30-SEP-04          1
31-OCT-04          1
15-NOV-04          1
01-MAR-94          1
29-DEC-87          1
23-AUG-76          1
16-SEP-64          1

15 rows selected.

SQL>
SQL>
SQL> drop table emp;

Table dropped.

SQL>








3.5.Union
3.5.1.Using the UNION Operator
3.5.2.UNION with order by clause
3.5.3.Use UNION to connect column data and summary data
3.5.4.Produce a summary of the grouped aggregate by using set functions
3.5.5.Union with table join
3.5.6.Union date column
3.5.7.Using union in subquery
3.5.8.Combining Data with UNION for single column