아래와 같은 Mysql 테이블이 있습니다.
회원 ID&IP 별로 로그인&아웃 시간을 기록해서, 언제 어디서 얼마동안 접속했는지
파악하는 테이블 인데요
관리프로그램상 오류로, 1번 로그인&로그아웃 할때 1개의 레코드만 축적되야 하는데
일부회원은 로그인 상태에서도 거의 같은데이터가 몇초간격으로 계속 쌓이는 에러가 발생 했습니다.
(StartTime/EndTime 이 몇초씩 증가하면서)
그래서 아래와 같이, ID&IP별로 연속된 데이터가 StartTime이 60초 이내면 1개의 레코드로
축약을 하려 합니다.
제가 생각하기에 쿼리로는 불가능한 작업 같고(쿼리로 가능하다면 정말 좋겠습니다.)
아래 로직으로 Procedure란 방법으로 Curser를 이용해서 처리해야 될것 같은데요
(전 나비캣으로 쿼리만 날릴줄 압니다만, 이번에 처음 시도해 볼려구요)
1. 아래쿼리로 데이터 전체를 불러서
SELECT
UserID, IP, StartTime,. EndTime
FROM
users_history_ips
ORDER BY
UserID ASC,
StartTime ASC
2. 아래 순서도로 처리
해결안을 알려 주시면 정말 감사 하겠습니다.
(데이터가 80만건이라 걱정이 앞서네요 ^^;....)
|