데이터베이스 개발자 질문과 답변 게시판
데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
다음의 경우 어떻게 하는게 좋을까요?
UserID , TimeStamp
AAAA , 2016-06-06 01:30 AM
BBBBB , 2016-06-06 02:30 AM
CCCCC , 2016-06-06 03:30 AM
AAAA , 2016-06-06 02:30 AM
AAAA , 2016-06-06 03:30 AM
AAAA , 2016-06-06 05:30 AM
이렇게 data 가 있을때,
결과 값은
UserID , From , To
AAAA 2016-06-06 01:30 AM 2016-06-06 02:30 AM
AAAA 2016-06-06 02:30 AM 2016-06-06 03:30 AM
AAAA 2016-06-06 03:30 AM 2016-06-06 05:30 AM
이런식으로입니다.
감사합니다.
(
Select'AAAA' , '2016-06-06 01:30 AM' Union All
Select'BBBBB', '2016-06-06 02:30 AM' Union All
Select'CCCCC', '2016-06-06 03:30 AM' Union All
Select'AAAA' , '2016-06-06 02:30 AM' Union All
Select'AAAA' , '2016-06-06 03:30 AM' Union All
Select'AAAA' , '2016-06-06 05:30 AM'
)
,tblB(UserId,TiemStamp2,Seq) As
(
Select *
,ROW_NUMBER() Over (Partition By a.UserId Order By a.TimeStamp2 Asc)
From tblA a
)
Select a.UserId
,a.TiemStamp2 As [From]
,b.TiemStamp2 As [To]
From tblB a
Inner Join
tblB b
On a.Seq = b.Seq - 1
And a.UserId = b.UserId