select count(distinct publisher.publisher_id) as num_publishers, count(distinct book.publisher_id) as num_publishers_with_books
from publisher left join book on publisher.publisher_id = book.book_id
or two separate statements:
select count(*) from publishers
select count(distinct publisher_id) from book
counting with CASE:
select count(synopsis_id) num_synopses, count(review_id) num_reviews,
sum(case when (synopsis_id is not null and review_id is not null) then 1 else 0 end) num_both,
sum(case when (synopsis_id is null and review_id is null) then 1 else 0 end) num_neither
from book