SQL>
SQL>
SQL>
SQL> create table registrations
2 ( attendee NUMBER(4)
3 , course VARCHAR2(6)
4 , begindate DATE
5 , evaluation NUMBER(1)) ;
Table created.
SQL>
SQL>
SQL> insert into registrations values (1, 'SQL',date '1999-04-12',4 );
1 row created.
SQL> insert into registrations values (2, 'SQL',date '1999-12-13',NULL);
1 row created.
SQL> insert into registrations values (3, 'SQL',date '1999-12-13',NULL);
1 row created.
SQL> insert into registrations values (4, 'OAU',date '1999-08-10',4 );
1 row created.
SQL> insert into registrations values (5, 'OAU',date '2000-09-27',5 );
1 row created.
SQL> insert into registrations values (6, 'JAV',date '1999-12-13',2 );
1 row created.
SQL> insert into registrations values (7, 'JAV',date '2000-02-01',4 );
1 row created.
SQL> insert into registrations values (8, 'JAV',date '2000-02-01',5 );
1 row created.
SQL> insert into registrations values (9, 'XML',date '2000-02-03',4 );
1 row created.
SQL> insert into registrations values (10,'XML',date '2000-02-03',5 );
1 row created.
SQL> insert into registrations values (1, '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 (3, 'PLS',date '2000-09-11',NULL);
1 row created.
SQL>
SQL>
SQL>
SQL> create or replace view avg_evaluations as
2 select course
3 , avg(evaluation) as avg_eval
4 from registrations
5 group by course;
View created.
SQL>
SQL>
SQL> select *
2 from avg_evaluations
3 where avg_eval >= 4;
COURSE AVG_EVAL
------ --------
OAU 5
XML 5
SQL 4
3 rows selected.
SQL>
SQL>
SQL>
SQL> select r.course
2 , avg(r.evaluation) as avg_eval
3 from registrations r
4 group by r.course
5 having avg(r.evaluation) >= 4;
COURSE AVG_EVAL
------ --------
OAU 5
XML 5
SQL 4
3 rows selected.
SQL>
SQL> drop table registrations;
Table dropped.
SQL>