Group joined tables : GROUP BY « Select Query « Oracle PL / SQL






Group joined tables

   
SQL> create table offerings
  2  ( course     VARCHAR2(6)
  3  , begindate  DATE
  4  , trainer    NUMBER(4)
  5  , location   VARCHAR2(8)
  6  ) ;

Table created.

SQL> insert into offerings values ('SQL',date '2009-04-12',13,'DALLAS' );

1 row created.

SQL> insert into offerings values ('OAU',date '2009-08-10',4,'CHICAGO');

1 row created.

SQL> insert into offerings values ('SQL',date '2009-10-04',1,'SEATTLE');

1 row created.

SQL> insert into offerings values ('SQL',date '2009-12-13',1,'DALLAS' );

1 row created.

SQL> insert into offerings values ('JAV',date '2009-12-13',4,'SEATTLE');

1 row created.

SQL> insert into offerings values ('XML',date '2000-02-03',1,'DALLAS' );

1 row created.

SQL> insert into offerings values ('JAV',date '2000-02-01',11,'DALLAS' );

1 row created.

SQL> insert into offerings values ('PLS',date '2000-09-11',8,'DALLAS' );

1 row created.

SQL> insert into offerings values ('XML',date '2000-09-18',NULL,'SEATTLE');

1 row created.

SQL> insert into offerings values ('OAU',date '2000-09-27',13,'DALLAS' );

1 row created.

SQL> insert into offerings values ('ERM',date '2001-01-15',NULL, NULL    );

1 row created.

SQL> insert into offerings values ('PRO',date '2001-02-19',NULL,'DALLAS' );

1 row created.

SQL> insert into offerings values ('RSD',date '2001-02-24',8,'CHICAGO');

1 row created.

SQL>
SQL> create table registrations
  2  ( attendee    NUMBER(4)
  3  , course      VARCHAR2(6)
  4  , begindate   DATE
  5  , evaluation  NUMBER(1)
  6  , constraint  R_PK        primary key(attendee,course,begindate)
  7  ) ;

Table created.

SQL>
SQL> insert into registrations values (2,'SQL',date '2009-04-12',4   );

1 row created.

SQL> insert into registrations values (14,'SQL',date '2009-04-12',5   );

1 row created.

SQL> insert into registrations values (6,'SQL',date '2009-04-12',4   );

1 row created.

SQL> insert into registrations values (11,'SQL',date '2009-04-12',2   );

1 row created.

SQL> insert into registrations values (8,'SQL',date '2009-10-04',NULL);

1 row created.

SQL> insert into registrations values (9,'SQL',date '2009-10-04',3   );

1 row created.

SQL> insert into registrations values (13,'SQL',date '2009-10-04',4   );

1 row created.

SQL> insert into registrations values (13,'SQL',date '2009-12-13',NULL);

1 row created.

SQL> insert into registrations values (12,'XML',date '2000-02-03',4   );

1 row created.

SQL> insert into registrations values (2,'XML',date '2000-02-03',5   );

1 row created.

SQL> insert into registrations values (4,'PLS',date '2000-09-11',NULL);

1 row created.

SQL> insert into registrations values (2,'PLS',date '2000-09-11',NULL);

1 row created.

SQL> insert into registrations values (11,'PLS',date '2000-09-11',NULL);

1 row created.

SQL>
SQL>
SQL> select o.trainer, avg(r.evaluation)
  2  from   offerings o
  3         join
  4         registrations r
  5         using (course,begindate)
  6  group  by o.trainer;

   TRAINER AVG(R.EVALUATION)
---------- -----------------
         1                 4
         8
        13              3.75

SQL>
SQL> drop table registrations;

Table dropped.

SQL>
SQL> drop table offerings;

Table dropped.

   
    
    
  








Related examples in the same category

1.Use avg, sum, max and count functions with group
2.Using the GROUP BY Clause
3.Must include a nonaggregate column in the SELECT list in the GROUP BY clause
4.Use group by and avg
5.GROUP BY may be used on a column without the column name appearing in the result set
6.Grouping at Multiple Levels: group by more than one column
7.Column sequence in the group by impacts the ordering
8.Using the ORDER BY Clause to Sort Groups
9.You don't have to include the columns used in the GROUP BY clause in your SELECT clause
10.GROUP BY and HAVING clauses
11.Using a Column Multiple Times in a GROUP BY Clause
12.timing and auto tracing a select statement with group
13.Group by case
14.Group by course name then by begin date
15.Group and count employeem and display only if its count is more than 4
16.Count all employees by even/odd employee id