Consulta de Oracle SQL para resumir estadísticas, utilizando GROUP BY

Tengo una tabla de Oracle con datos que se parecen a esto:

<code>ID   BATCH   STATUS
1    1       0
2    1       0
3    1       1
4    2       0
</code>

Es decir,CARNÉ DE IDENTIDAD es la clave principal, habrá varias filas para cada "lote" y cada fila tendrá un código de estado en elESTADO columna. Hay un montón de otras columnas, pero estas son las más importantes.

Necesito escribir una consulta que resuma lacódigos de estado para cadalote; hay tres valores posibles que pueden ir en la columna ESTADO, 0, 1 y 2, y me gustaría una salida que se vea algo como esto:

<code>BATCH  STATUS0  STATUS1  STATUS2
1      2        1        0
2      1        0        0
</code>

Esos números serían cuentas; para el lote 1, hay

2 registros dondeESTADO se establece en 01 registro dondeESTADO se establece en 1, yno hay registros dondeESTADO se establece en 0.

Para el lote 2, hay

1 registro dondeESTADO se establece en 0, yno hay registros dondeESTADO se establece en 1 o 2.

¿Hay alguna manera de que pueda hacer esto en una consulta, sin tener que volver a escribir la consulta para cada código de estado? es decir, puedo escribir fácilmente una consulta como esta y ejecutarla tres veces:

<code>SELECT batch, COUNT(status)
FROM table
WHERE status = 0
GROUP BY batch
</code>

Podría ejecutar eso, luego ejecutarlo nuevamente donde estado = 1, y nuevamente donde estado = 2, pero espero hacerlo en una consulta.

Si hace la diferencia, aparte de laESTADO columna hayotro columna que podría resumir de la misma manera, otra razón por la que no quiero tener que ejecutar la instrucción SELECT después de la instrucción SELECT y amalgamar todos los resultados.

Respuestas a la pregunta(4)

Su respuesta a la pregunta