By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE Author (code VARCHAR(2), Name VARCHAR(9));
INSERT INTO Author (code, Name) VALUES
('GB', 'George B.'),
('KL', 'Kyle L.'),
('DC', 'Donald C.'),
('RL', 'Roland L.');
CREATE TABLE Book (isbn INTEGER, author VARCHAR(2));
INSERT INTO Book (isbn, author) VALUES
('1111', 'GB'),
('2222', 'DC'),
('3333', 'RL');
CREATE TABLE Coauthor (name VARCHAR(2), isbn INTEGER);
INSERT INTO Coauthor (name, isbn) VALUES
('KL', '1111'),
('GB', '2222'),
('GB', '3333');
SELECT a.code, a.name,
COUNT(DISTINCT b.isbn) + COUNT(DISTINCT c.isbn) count
FROM Author a
LEFT JOIN Book b ON b.author = a.code
LEFT JOIN Coauthor c ON c.name = a.code
GROUP BY a.code, a.name;
code | name | count |
---|---|---|
DC | Donald C. | 1 |
GB | George B. | 3 |
KL | Kyle L. | 1 |
RL | Roland L. | 1 |