Вы можете сделать LEFT JOIN
из таблицы business_unit
в asset_item
соответственно.Таблица business_unit
должна быть самой левой таблицей, так как вы хотите рассмотреть все unit
, даже если в asset_item
.
нет совпадающих строк. Тогда мы можем GROUP BY
и использовать условное агрегированиена COUNT()
функция:
SELECT
bu.unit,
COUNT(CASE WHEN ai.item_type = 'Laptop' THEN 1 END) AS Laptop
FROM business_unit bu
LEFT JOIN asset_item ai
ON ai.allocation_unit = bu.unit
GROUP BY bu.unit
Если вас интересует только Laptop
значения счетчика, то мы можем поставить условие на сам LEFT JOIN
и покончить с выражением CASE..WHEN
.
SELECT
bu.unit,
COUNT(ai.item_type) AS Laptop
FROM business_unit bu
LEFT JOIN asset_item ai
ON ai.allocation_unit = bu.unit AND
ai.item_type = 'Laptop'
GROUP BY bu.unit