Я пытался извлечь в среднее время (на основе некоторых критериев). Мне нужно получить два результата. Эти два результата основаны на количестве минут между двумя делениями, деленном на количество регистров в таблице. Итак, это в основном так:
select round(sum(a.dt_atend_medico-a.dt_entrada)/count(a.nr_atendimento),0)tempopsa
from atendimento_paciente a JOIN atend_paciente_unidade b ON a.nr_atendimento = b.nr_atendimento AND b.nr_sequencia = 1
JOIN setor_atendimento c ON b.cd_setor_atendimento = c.cd_setor_atendimento
where c.cd_setor_atendimento = 65
and a.dt_cancelamento IS NULL
AND a.dt_alta IS NULL
AND a.ie_tipo_atendimento = 3
AND a.dt_entrada between (sysdate)-1/24 and sysdate
Мне нужно извлечь второй результат, и единственное другое значение - это "c .cd_setor_atendimento", то есть 66. Я пытался использовать case, когда, но тогда это заставляет меня группировать результаты:
SELECT case when a.dt_atend_medico is not null and c.cd_setor_atendimento = 65 then
round(sum(Obter_min_entre_datas(a.dt_entrada, a.DT_ATEND_MEDICO,0))/count(a.nr_atendimento),0) end as tempopsa,
case when a.dt_atend_medico is not null and c.cd_setor_atendimento = 66 then
round(sum(Obter_min_entre_datas(a.dt_entrada, a.DT_ATEND_MEDICO,0))/count(a.nr_atendimento),0) end as tempopsi
from atendimento_paciente a JOIN atend_paciente_unidade b ON a.nr_atendimento = b.nr_atendimento AND b.nr_sequencia = 1
JOIN setor_atendimento c ON b.cd_setor_atendimento = c.cd_setor_atendimento
where
a.dt_cancelamento IS NULL
AND a.dt_alta IS NULL
AND a.ie_carater_inter_sus = 02
AND a.ie_tipo_atendimento = 3
AND a.dt_entrada between (sysdate)-1/24 and sysdate
Это дает мне ORA-00937: не групповую функцию для одной группы 00937. 00000 - "не групповую функцию для одной группы"
Какие-либо советы, чтобы получить эти два значения с различными параметрами? (Мне нужно получить отдельные значения, поэтому я не могу использовать UNION между двумя выборами)
Спасибо!