Se ho capito bene cosa vuoi ottenere, dovresti poter fare così:
SELECT Tipo, COUNT(*) AS occorrenze FROM `mytable` GROUP BY Tipo
Questa query dovrebbe produrre un resultset di questo tipo:
Tipo | occorrenze
a 8
b 10
c 1
...
Per il totale ti basta sommare tra loro tutti valori della colonna occorrenze, lato php verrebbe estremamente comodo usando la combinazione di array_column e array_sum. Ma se vuoi una soluzione in puro SQL, basta usare una UNION per aggiungere al recordset di prima una nuova riga col tipo “totale” e come occorrenze il conteggio di tutti i record.
SELECT 'totale' AS Tipo, COUNT(*) AS occorrenze FROM `mytable`
UNION
SELECT Tipo, COUNT(*) AS occorrenze FROM `mytable`
GROUP BY Tipo