Seria algo así (yo te doy la idea, la solución exacta tienes que sacarla tu)
Código SQL:
Ver originalSELECT TIPO, SUM(PUB), SUM(PRI)
FROM
(
SELECT TIPO, CASE WHEN CARACTER = 'Público' THEN '1' ELSE '0' END AS PUB,
CASE WHEN CARACTER = 'Privado' THEN '1' ELSE '0' END AS PRI
FROM TIPOS
)
GROUP BY TIPO