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 и объединять все результаты.