비투엔 라이프/스토리
재미삼아 풀어보는 SQL 작성 QUIZ! 문제풀이
알 수 없는 사용자
2016. 2. 17. 15:54
문제풀이
- 누락된 시간을 찾기 위해서 온전한 시간 테이블을 가상으로 생성해야 한다.
가상의 데이터를 생성하기 위해서는 CONNECT BY절을 이용한다. - 누락된 데이터와 온전한 데이터를 OUTER JOIN하여 온전한 데이터 집합으로 생성한다.
- ROWNUMBER 분석함수를 이용하여 시간이 중복인 데이터를 찾는다.
- LAG 함수를 사용하여 이전 시간과 현재 시간의 차이를 비교하여 10분 이상(lev:1)일 경우에 그룹의 시작점으로 지정한다.
- 누적 합계를 이용하여 그룹의 시작점을 기준으로 모든 데이터에 그룹을 지정한다.
- 30분 이내의 데이터는 제외하고 사용자별, 일자별로 그룹핑하여 원하는 결과집합을 산출한다.