2 count по одному столбцу с разными условиями sql

у меня есть такой запрос

    SELECT name_book, yers, name_publisher,count(copy_book.id_book)as cnt_a FROM book
    left join  publishing_house
    ON book.id_publisher = publishing_house.id_publisher
    left join copy_book
    on book.id_book = copy_book.id_book 
    group by book.id_book

Который добавляет столбец общего количества. Как мне добавить еще один столбец суммы с таким условием

on book.id_book = copy_book.id_book and availability_in_library=1

Ответы (1 шт):

Автор решения: Akina

Условное агрегирование называется.

SELECT name_book, 
       yers, 
       name_publisher,
       count(copy_book.id_book)as cnt_a,
       SUM(availability_in_library=1) AS cnt_b
FROM book
left join  publishing_house ON book.id_publisher = publishing_house.id_publisher
left join copy_book on book.id_book = copy_book.id_book 
group by book.id_book
→ Ссылка