Use view to simplify the query : Filter View « View « Oracle PL/SQL Tutorial






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>








8.8.Filter View
8.8.1.Create a view with condition
8.8.2.Creating a simple filtering view
8.8.3.Creating a view that joins tables
8.8.4.Top 'N' analysis
8.8.5.Query a filtering view
8.8.6.Create a view for employee and its course during
8.8.7.Use view to simplify the query
8.8.8.Create a view to link two table together
8.8.9.Use view to wrap complex select statement