Deals Of The Week - hours only!Up to 80% off on all courses and bundles.-Close
Your first view
5. Creating more complex views
How to use views
Summary

Instruction

Excellent! Views can be actually very complex and include clauses such as GROUP BY or HAVING. For instance, with the two tables from the previous exercises ...

CREATE TABLE doctor (
  id integer PRIMARY KEY,
  full_name varchar(128),
  type varchar(32),
  city varchar(128),
  rating decimal(2, 1),
  price_per_visit decimal(5, 2)
);
CREATE TABLE visit (
  id integer PRIMARY KEY,
  doctor_id integer,
  visit_date date,
  patient_id integer,
  FOREIGN KEY (doctor_id) REFERENCES doctor(id),
  FOREIGN KEY (patient_id) REFERENCES patient(id)
);

... we can create a view which will show the number of visits each doctor made on each day, given that there were at least two visits:

CREATE VIEW doctor_stats AS
SELECT
  v.visit_date AS day,
  d.full_name AS doctor_name,
  COUNT(v.id) AS visit_count
FROM doctor d
JOIN visit v
  ON v.doctor_id = d.id
GROUP BY v.visit_date, d.id, d.full_name
HAVING COUNT(v.id) > 1;

As you can see, views can also use more advanced SQL concepts. We'll talk more about that in the next section.

Exercise

Click Next exercise to continue.