Oracle SQL Query для суммирования статистики с использованием GROUP BY

У меня есть таблица Oracle с данными, которые выглядят так:

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

То есть,ID является первичным ключом, для каждой «партии» будет несколько строк. и каждая строка будет иметь код состояния вSTATUS колонка. Есть множество других столбцов, но это важные.

Мне нужно написать запрос, который будет обобщатьstatus codes для каждогоbatch; Есть три возможных значения, которые могут находиться в столбце STATUS, 0, 1 и 2, и я хотел бы вывод, который выглядит примерно так:

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

Эти цифры будут считаться; для партии 1 есть

2 records where STATUS is set to 0 1 record where STATUS is set to 1, and no records where STATUS is set to 0.

Для партии 2 есть

1 record where STATUS is set to 0, and no records where STATUS is set to 1 or 2.

Есть ли способ, которым я могу сделать это в одном запросе, без необходимости переписывать запрос для каждого кода состояния? то есть я могу легко написать запрос, подобный этому, и выполнить его три раза:

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

Я мог бы выполнить это, затем запустить его снова, где status = 1, и снова, где status = 2, но я надеюсь сделать это в одном запросе.

Если это имеет значение, кромеSTATUS колонка естьanother столбец, который я мог бы обобщить таким же образом - еще одна причина, по которой я не хочу выполнять инструкцию SELECT после инструкции SELECT и объединять все результаты.

Ответы на вопрос(4)

Ваш ответ на вопрос