1. a) COUNT(*)|---------12b)f1 f2 f3 f4|------------1 2 3 84 5 6 94 5 6 11c)f1 f2 f3 f4|------------1 2 3 84 5 6 94 5 6 117 9 | 12d)f1 f2 f3 f4|------------1 2 3 84 5 6 94 5 6 117 8 9 |e)f1 f2 f3 f4|------------1 2 3 84 5 6 94 5 6 117 8 9 |7 9 | 122.r1 | SUM(r2)|-------------3 195 2513 43. a)SELECT repId, repName, sin, nameFROM customer c NATURAL RIGHT OUTER JOIN customerRep cr NATURAL JOIN rep r;b)SELECT repName, COUNT(sin) AS customersFROM rep NATURAL JOIN customerRepGROUP BY repNameHAVING COUNT(sin) > 20;RA:c)d)SELECT transdate, numcustomersFROM (SELECT transdate, COUNT(sin) AS numcustomers FROM customer NATURAL JOIN trans NATURAL JOIN fund WHERE fundName = 'Energy' GROUP BY transdate) AS numcustomersORDER BY ASC;e)DROP TABLE Customer;CREATE TABLE Customer( cid int PRIMARY KEY, name char(20) NOT NULL, address VARCHAR(20) NOT NULL);DROP TABLE Book;CREATE TABLE Book( title char(20), year int, length int CHECK(length>=0), PRIMARY KEY(title,year));DROP TABLE Branch;CREATE TABLE Branch( bid int PRIMARY KEY, location varchar(20));DROP TABLE BranchHoldings;CREATE TABLE BranchHoldings( bid REFERENCES Branch(bid), title REFERENCES Book(title), year REFERENCES Book(year));DROP TABLE Borrow;CREATE TABLE Borrow( cid int REFERENCES Customer(cid) ON UPDATE CASCADE ON DELETE CASCADE, bid int REFERENCES Book(bid) ON UPDATE CASCADE ON DELETE CASCADE, title char(20) REFERENCES Book(title) ON UPDATE CASCADE ON DELETE CASCADE, year int REFERENCES Book(year) ON UPDATE CASCADE ON DELETE CASCADE, borrowDate DATE DEFAULT current_date, returnDate DATE CHECK(returnDate=NULL or returnDate>borrowDate));CREATE FUNCTION borrowMax() RETURN trigger AS $borrowMax$ DECLARE numBorrowed RECORD; BEGIN SELECT INTO numBorrowed * FROM (SELECT cid, COUNT(*) FROM customer NATURAL JOIN Borrow WHERE returnDate=NULL GROUP BY cid) AS numborrowed WHERE numborrowed > 5; IF FOUND THEN RAISE EXCEPTION 'Customer can only borrow 5 books at one time'; END IF; RETURN NULL; END;$pct$ LANGUAGE plpgsql;CREATE TRIGGER borrowMax AFTER INSERT or UPDATE ON Borrow FOR EACH STATEMENT EXECUTE PROCEDURE borrowMax();