У меня есть таблица Oracle с данными, который выглядит следующим образом:Oracle SQL Query Суммировать статистики, используя GROUP BY
ID BATCH STATUS
1 1 0
2 1 0
3 1 1
4 2 0
То есть ID является первичным ключом, будет несколько строк для каждого «партия», и каждая строка будет иметь код состояния в столбце STATUS. Есть еще несколько столбцов, но они важны.
мне нужно написать запрос, который будет суммировать код статуса для каждой партии ; Есть три возможных значения, которые могут пойти в колонке STATUS, 0, 1, и 2, и я хотел бы вывод, который выглядит примерно так:
BATCH STATUS0 STATUS1 STATUS2
1 2 1 0
2 1 0 0
Эти цифры будут на счету; для партии 1, есть
- 2 записей, где STATUS установлен в 0
- 1 запись, где STATUS устанавливается в 1, и
- нет записей, где STATUS устанавливается равным 0 .
для партии 2, есть
- 1 запись, где STATUS устанавливается в 0, и
- нет записей, где STATUS установлен в 1 или 2.
Есть ли способ, что я могу сделать это в одном запросе, без нужно переписать запрос для каждого кода состояния? то есть я могу легко написать запрос, как это, и запустить его в три раза:
SELECT batch, COUNT(status)
FROM table
WHERE status = 0
GROUP BY batch
я мог бежать, что, а затем запустить его снова, где состояние = 1, и снова где статус = 2, но я надеюсь сделайте это в одном запросе.
Если это имеет значение, в стороне от STATUS колонке есть другой столбец, который я мог бы суммировать таким же образом - еще одна причина, по которой я не хочу, чтобы выполнить SELECT, заявление после SELECT, заявление и объединить все результаты.
Спасибо за это! – imiric