wing-ops/database/migration/028_pred_run_sn.sql
2026-03-25 15:35:43 +09:00

26 lines
1.0 KiB
SQL

-- Migration 028: PRED_EXEC에 실행 그룹 식별자(PRED_RUN_SN) 추가
-- 같은 시점에 여러 모델로 실행된 PRED_EXEC 레코드를 하나의 "예측 실행"으로 묶는다.
-- 목록 화면에서 사고당 예측 실행 횟수만큼 행을 표시하기 위한 기반 구조.
-- 1. 컬럼 추가
ALTER TABLE wing.PRED_EXEC ADD COLUMN IF NOT EXISTS PRED_RUN_SN INTEGER;
-- 2. 기존 데이터 마이그레이션
-- 같은 ACDNT_SN + 시작 시각 60초 이내의 레코드를 동일 실행 그룹으로 묶는다.
-- MIN(PRED_EXEC_SN)을 그룹 대표 키로 사용한다.
UPDATE wing.PRED_EXEC pe1
SET PRED_RUN_SN = (
SELECT MIN(pe2.PRED_EXEC_SN)
FROM wing.PRED_EXEC pe2
WHERE pe2.ACDNT_SN = pe1.ACDNT_SN
AND ABS(EXTRACT(EPOCH FROM (
COALESCE(pe2.BGNG_DTM, NOW()) - COALESCE(pe1.BGNG_DTM, NOW())
))) < 60
)
WHERE pe1.PRED_RUN_SN IS NULL;
-- 3. 시퀀스 생성 (신규 실행용 — 기존 최대값보다 충분히 높은 값에서 시작)
CREATE SEQUENCE IF NOT EXISTS wing.PRED_RUN_SN_SEQ
START WITH 10000
INCREMENT BY 1;