Questa dovrebbe andare:
SELECT tipo_categoria, colore, COUNT(*) as num_cat FROM magazzino GROUP BY tipo_categoria;
aggiungi tu la clausola where in base alle tue esigenze.
Comunque, pur non conoscendo la logica dell'applicativo, mi sembra che il DB non sia ben strutturato e sicuramente non...