Dado que los pedidos están vinculados a las empresas a través de los clientes, no creo que necesite realizar dos subconsultas separadas y unirlas; más bien, creo que puedes escribir:
SELECT companies.company AS "Company",
IFNULL(COUNT(DISTINCT companies_customers.customer_id), 0) AS "Total Customers",
IFNULL(SUM(orders.amount), 0) AS "All Orders Total"
FROM companies
LEFT
JOIN companies_customers
ON companies_customers.company_id = companies.id
LEFT
JOIN orders
ON orders.customer_id = companies_customers.customer_id
GROUP
BY companies.id
;
Editado para agregar: Dicho esto, debo decir que el esquema realmente no tiene sentido para mí. Tiene una relación de muchos a muchos entre clientes y empresas, por ejemplo, John Smith es cliente de Acme Widget Company y de Intrepid Inc. — pero entonces los pedidos son solo una propiedad del cliente, no de la compañia. Esto significa que si un pedido pertenece a John Smith , entonces necesariamente pertenece a ambos a Acme Widget Company y a Intrepid Inc. . No creo que eso pueda estar bien. En lugar de tener un customer_id campo, creo que orders necesita tener un companies_customers_id campo.