У меня есть 2 запроса для извлечения faultCount
и responseCount
следующим образом, и он отлично работает.Объедините два запроса в Oracle
select count(*) as faultCount,
COMP_IDENTIFIER
from CORDYS_NCB_LOG
where AUDIT_CONTEXT='FAULT'
group by COMP_IDENTIFIER
order by responseCount;
select count(*) as responseCount,
COMP_IDENTIFIER
from CORDYS_NCB_LOG
where AUDIT_CONTEXT='RESPONSE'
group by COMP_IDENTIFIER
order by responseCount;
Мне нужно зарегистрироваться, чтобы получить столбцы так: COMP_IDENTIFIER,faultCount,responseCount
. Следующий запрос выполняет задание. Но это займет много времени (> 16 секунд).
select count(case AUDIT_CONTEXT when 'FAULT' then 1 end) as faultCount,
count(case AUDIT_CONTEXT when 'RESPONSE' then 1 end) as responseCount,
COMP_IDENTIFIER
from CORDYS_NCB_LOG
group by COMP_IDENTIFIER
order by responseCount;
Я ищу простой и быстрый запрос. Заранее спасибо.
Обычно вы должны сделать заказ, указав колонку, которая была проиндексирована. Кроме того, в зависимости от размера вашей базы данных вы проверяете каждую строку для «RESPONSE», поэтому попробуйте сделать запрос в столбце, который вы проиндексировали. Также, если возможно, сначала не начинайте поиск строки. Скорее попробуйте и сократите таблицу базы данных по каким-либо другим критериям, а затем выполните поиск строки на меньшем подмножестве. – Rash
Я думаю, вы должны удалить тег mysql. – RubahMalam