Nahraďte WHERE klauzule s HAVING , takto:
SELECT o.ID , count(p.CAT)
FROM Orders o
INNER JOIN Products p ON o.P_ID = p.P_ID
GROUP BY o.ID
HAVING count(p.CAT) > 3;
HAVING je podobný WHERE , to znamená, že oba se používají k filtrování výsledných záznamů, ale HAVING se používá k filtrování agregovaných dat (když GROUP BY se používá).