Я пытаюсь подсчитать количество компаний, у которых есть хотя бы один продукт, по следующему запросу
SELECT count(*)
FROM company c
JOIN product p on c.id = product.company_id
WHERE p.is_deleted = 0
AND c.is_customer = 1
AND c.company_type_id = 5
GROUP by c.id
Итак, это показывает мне список всех компаний и количество продуктов для каждой компании.
] Я пытаюсь подсчитать количество компаний из приведенного выше результата.
Этого можно достичь следующим образом:
SELECT count(*)
FROM (
SELECT count(*)
FROM company c
JOIN product p on c.id = product.company_id
WHERE p.is_deleted = 0
AND c.is_customer = 1
and c.company_type_id = 5
GROUP by c.id) AS t1
Итак, это дает мне правильный результат, но мне просто интересно, есть ли более эффективный способ делать вещи.