해당 테이블에는 create_date default sysdate컬럼이 존재 합니다.
통상 한 user에 대해서 5분에 1개씩 데이터가 insert되어야 정상이지만,
5분 안에 1개 이상의 data가 insert된 것으로 확인이 됩니다.
이런 경우, 해당 데이터를 조회할수 있는 방법이 있을까요?
하나의 user에 대해서 5분안에 데이터가 2개 이상 insert되었는지 확인할 수 있는 쿼리가 가능할까요?
딱히 다른 조건은 없습니다.
WITH T AS ( SELECT TRUNC( SYSDATE ) + ( CEIL( DBMS_RANDOM.VALUE( 3, 5 )) * LEVEL ) / 60 / 24 CREATE_DATE FROM DUAL CONNECT BY LEVEL <= 20 ) SELECT CREATE_DATE , BEFORE_DATE , INTERVAL_BEFORE , INTERVAL_AFTER , CASE WHEN INTERVAL_BEFORE + INTERVAL_AFTER <= 5 THEN 'Y' -- 6으로 설정하면 에러 데이터 기준이 달라집니다. END ERROR_YN FROM ( SELECT CREATE_DATE , LAG( CREATE_DATE ) OVER( ORDER BY CREATE_DATE ) BEFORE_DATE , ( CREATE_DATE - LAG( CREATE_DATE ) OVER( ORDER BY CREATE_DATE )) * 60 * 24 INTERVAL_BEFORE , ( LEAD( CREATE_DATE ) OVER( ORDER BY CREATE_DATE ) - CREATE_DATE ) * 60 * 24 INTERVAL_AFTER FROM T );
현재 들어온 시각을 기준으로 앞뒤 데이터의 시간차이를 계산하면 될 것 같습니다.