SELECT
subs_key,
sum(ROUNDED_DATA_VOLUME) AS RDV_SUM,
CASE WHEN to_char(CALL_START_TIME , 'HH24:MI:SS') >= '00:00:00'
AND to_char(CALL_START_TIME , 'HH24:MI:SS') <= '07:00:00' THEN 'Night'
WHEN to_char(CALL_START_TIME , 'HH24:MI:SS') > '07:00:00'
AND to_char(CALL_START_TIME , 'HH24:MI:SS') <= '23:59:59' THEN 'Day'
END AS Tariff_flag
FROM DWH.FCT_USAGE_PREP_OGPRS_N
WHERE CALL_START_TIME >= to_date('2021-11-01', 'YYYY-MM-DD')
AND CALL_START_TIME <= to_date('2021-11-30', 'YYYY-MM-DD')
GROUP BY
SUBS_KEY,
CASE WHEN (to_char(CALL_START_TIME , 'HH24:MI:SS') >= '00:00:00'
AND to_char(CALL_START_TIME, 'HH24:MI:SS') <= '07:00:00') THEN 'Night'
WHEN (to_char(CALL_START_TIME , 'HH24:MI:SS') > '07:00:00'
AND to_char(CALL_START_TIME, 'HH24:MI:SS') <= '23:59:59') THEN 'Day'
END
My query takes more than hour and still running. Is there any way to optimize it?
UPD:
Is that what Ankit asked?