Oracle SQL Query para resumir estatísticas, usando GROUP BY

Eu tenho uma tabela do Oracle com dados que se parece com isso:

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

Isso é,identidade é a chave primária, haverá várias linhas para cada "lote" e cada linha terá um código de status noSTATUS coluna. Há um monte de outras colunas, mas estas são as mais importantes.

Eu preciso escrever uma consulta que irá resumir ocódigos de status para cadalote; Existem três valores possíveis que podem ir na coluna STATUS, 0, 1 e 2, e eu gostaria que a saída seja algo como isto:

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

Esses números seriam contagens; para o lote 1, existem

2 registros ondeSTATUS está definido para 01 registro ondeSTATUS está definido como 1 enenhum registro ondeSTATUS está definido como 0.

Para o lote 2, existe

1 registro ondeSTATUS está definido para 0 enenhum registro ondeSTATUS está definido como 1 ou 2.

Existe uma maneira que eu possa fazer isso em uma consulta, sem ter que reescrever a consulta para cada código de status? por exemplo, posso facilmente escrever uma consulta como essa e executá-la três vezes:

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

Eu poderia rodar isso, então rodá-lo novamente, onde status = 1, e novamente, onde status = 2, mas eu estou esperando para fazer isso em uma consulta.

Se isso faz diferença, além doSTATUS coluna existeoutro coluna que eu poderia querer resumir da mesma maneira - outra razão que eu não quero ter que executar a instrução SELECT após a instrução SELECT e amalgamate todos os resultados.

questionAnswers(4)

yourAnswerToTheQuestion