SQL - contando filas con valor específico

Tengo una mesa que se parece un poco a esto:

id  value
1   0
1   1
1   2
1   0
1   1
2   2
2   1
2   1
2   0
3   0
3   2
3   0

Ahora para cadaid, Quiero contar el número de ocurrencias de 0 y 1 y el número de ocurrencias para esa ID (el valor puede ser cualquier número entero), por lo que el resultado final debe verse algo como esto:

id  n0  n1  total
1   2   2   5
2   1   2   4
3   2   0   3

Logré obtener la primera y última fila con esta declaración:

SELECT id, COUNT(*) FROM mytable GROUP BY id;

Pero estoy un poco perdido de aquí. ¿Alguna sugerencia sobre cómo lograr esto sin una gran declaración?

Respuestas a la pregunta(2)

Su respuesta a la pregunta