Hola de nuevo huesos52,
Al final la cree con el refresh que me dijistes y parece que funciona correctamente. La he puesto a actualizar cada hora. La idea de esta vista es para monitorear los registros que hubo hoy (desde las 00:00 hasta la hora actual --> sysdate) con el mismo periodo de tiempo del día anterior. Mi idea era que la vista se actualizara cada vez que se llamara a la vista pero este modo tb puede servirme :)
Asi es como ha quedado:
Código SQL:
Ver originalCREATE MATERIALIZED VIEW "mv_health_rules" ("period", "id_service", "id_event", "total")
TABLESPACE plat_dat
BUILD IMMEDIATE
USING INDEX
REFRESH
START WITH SYSDATE NEXT SYSDATE + 1/24
FORCE
USING DEFAULT LOCAL ROLLBACK SEGMENT
USING ENFORCED CONSTRAINTS DISABLE QUERY REWRITE
AS
SELECT
to_date(concat(to_char("created_at", 'YYYY-MM-DD HH24'),':00:00'),'YYYY-MM-DD HH24:MI:SS') AS "period"
, "id_service"
, "id_event"
, COUNT(*) AS "total"
FROM "bill_events"
WHERE "created_at" BETWEEN trunc(sysdate)-1 AND sysdate
GROUP BY to_char("created_at", 'YYYY-MM-DD HH24'), "id_service", "id_event"
ORDER BY 1;
Lo unico que me tiene un poco mosca es que cuando miro la vista en el sqldeveloper en la pestaña de Vista Materializadas me sale una x al lado del nombre.
Saludos y muchas gracias