Oracle SQL Query do podsumowania statystyk za pomocą GROUP BY

Mam tabelę Oracle z danymi, które wyglądają tak:

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

To jest,ID jest kluczem podstawowym, będzie wiele wierszy dla każdej „partii”, a każdy wiersz będzie miał kod statusu wSTATUS kolumna. Istnieje kilka innych kolumn, ale są to ważne.

Muszę napisać zapytanie, które podsumujekody statusu dla każdegopartia; są trzy możliwe wartości, które mogą się znaleźć w kolumnie STATUS, 0, 1 i 2, a ja chciałbym, aby dane wyjściowe wyglądały mniej więcej tak:

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

Te liczby byłyby liczone; dla partii 1 są

2 rekordy gdzieSTATUS jest ustawione na 01 rekord gdzieSTATUS jest ustawiony na 1 ibrak zapisów gdzieSTATUS jest ustawione na 0.

Dla partii 2 jest

1 rekord gdzieSTATUS jest ustawione na 0 ibrak zapisów gdzieSTATUS jest ustawiony na 1 lub 2.

Czy istnieje sposób, aby to zrobić w jednym zapytaniu, bez konieczności przepisywania zapytania dla każdego kodu statusu? tj. mogę łatwo napisać takie zapytanie i uruchomić je trzy razy:

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

Mogę to uruchomić, a następnie uruchomić ponownie, gdzie status = 1, i ponownie gdzie status = 2, ale mam nadzieję, że zrobię to w jednym zapytaniu.

Jeśli to robi różnicę, opróczSTATUS kolumna jestinne kolumna, którą chciałbym podsumować w ten sam sposób - kolejny powód, dla którego nie chcę wykonywać instrukcji SELECT po instrukcji SELECT i łączyć wszystkie wyniki.

questionAnswers(4)

yourAnswerToTheQuestion