안녕하세요. 쿼리 질문이 있어서 문의 드립니다.
유저의 진입 (출/입)을 기록하는 테이블이 존재합니다.
유저가 언제, 어디서 들어오고 나갔는지를 모두 기록하는 로그성 테이블 입니다. 이 테이블을 가지고 다음과 같은 통계가 필요합니다.
1.조회기간 동안 위치별 얼마나 많은 유저의 입장이 있었나
2.조회기간 동안 위치별 얼마나 많은 유저의 퇴장이 있었나
3.조회기간 동안 입장 후 퇴장한 유저들의 통계
(입->출 기간(datediff), 조회기간 동안 각 출입위치별 count)
데이터 컬럼은 간략히 다음과 같습니다
SeqNo / 자동으로 증가하는 아이덴티티 값
UserID / 유저고유번호
Useracc / 유저출입(1:입장,2:퇴장)
Userexit /유저출입위치(1:동2:서3:남4:북, 퇴장은무조건:99)
YMD / 출입한 시간YMD(type:char)
RegDate / 출입한 시간(type:datetime)
위의 통계 중 1,2번은 큰 문제가 없지만 3번의 경우 어떻게 구성해야할지 질문드립니다.
우선 저의 경우 Useracc의 짝 (2 -> 1) 로 변경된 유저들만을 추출해 구하려고 합니다.
(조회기간동안 유저가 출, 또는 입 만 했을수도 있습니다.)
조회기간동안 재귀함수를 돌리려고 했지만 입장은 조회기간 전에 했던 유저들이 있을 수 있어 데이터가 맞지않습니다. 결국 전체 조회를해야하는 것인지.. 이 경우를 생각해서 쿼리를 짜면 결국엔 3~5번의 서브쿼리를 사용하게 되서 다른 아이디어를 얻고자 질문드립니다
좋은 아이디어 있으시면 부탁 드립니다.
Comment 1
-
outer apply를 활용해서 계산할 수 잇겟네요~