У вас есть несколько состояний в операторе:
(SELECT DISTINCT(status) AS status_ FROM my_table
WHERE EL_F_BDP_PROC_REALTIME.HIVE = 'hive1'
AND EXTRACT(MONTH FROM PARTITION_DATE) = EXTRACT(MONTH FROM TO_DATE('20191212', 'YYYY-MM-DD'))
AND EXTRACT(YEAR FROM PARTITION_DATE) = EXTRACT(YEAR FROM TO_DATE('20191212', 'YYYY-MM-DD'))
)
и возвращено более одной строки.
Для выполнения Rigth вам необходимо вернуть один пример значения:
max((SELECT DISTINCT(status) AS status_ FROM my_table
WHERE EL_F_BDP_PROC_REALTIME.HIVE = 'hive1'
AND EXTRACT(MONTH FROM PARTITION_DATE) = EXTRACT(MONTH FROM TO_DATE('20191212', 'YYYY-MM-DD'))
AND EXTRACT(YEAR FROM PARTITION_DATE) = EXTRACT(YEAR FROM TO_DATE('20191212', 'YYYY-MM-DD'))
))
Это выполняется, но, возможно, логика неверна
Попробуйте:
with tbl as (
select 'START' status, 'hive1' str, to_date('2019-12-11', 'yyyy-mm-dd') dt from dual
union all
select 'NA' status, 'hive1' str, to_date('2019-12-11', 'yyyy-mm-dd') from dual
union all
select 'END' status, 'hive1' str, to_date('2019-12-11', 'yyyy-mm-dd') from dual)
select dt, str, listagg(status, ' ') WITHIN GROUP (ORDER BY str)
from tbl
GROUP BY dt, str