내가 각 상태의 시간 차이를 계산하려고TSQL은
(1 이미지) 다음과 같이 SQL 테이블이 각 주에 시간과 함께, 로그인 사이 총 시간을 계산하고 로그 아웃하기 아래와 같이 상담원의 로그인과 로그 아웃 사이의 총 지속 시간 (이미지 2). 리드/래그 기능을 사용하려고하지만 출력을 얻을 수 없습니다. 이걸 좀 도와 주실 래요?
내가 각 상태의 시간 차이를 계산하려고TSQL은
(1 이미지) 다음과 같이 SQL 테이블이 각 주에 시간과 함께, 로그인 사이 총 시간을 계산하고 로그 아웃하기 아래와 같이 상담원의 로그인과 로그 아웃 사이의 총 지속 시간 (이미지 2). 리드/래그 기능을 사용하려고하지만 출력을 얻을 수 없습니다. 이걸 좀 도와 주실 래요?
아래의 코드 조각은 당신이 가야 도움이 될 것입니다 당신이 총 로그를 얻고 최소 및 최대를 사용하여 시간을 로그 아웃하는 방법을 알고 있다고 생각
;WITH TotalDuration as
(
SELECT LogIN = Min(DateTime)
,LogOut = Max(DateTime)
,AgentID
FROM YourTable
Group BY AgentID
)
SELECT Duration = DATEDIFF(MINUTE, LogIN, LogOut)
,AgentId
FROM TotalDuration
ORDER BY AgentId
--TimeInState = datediff(minute, [DateTime], LEAD([DateTime], 1) OVER (Partition BY AgentID ORDER BY [DateTime]))
... 여기있다 LEAD 및 LAG가 필요합니다.
with cte as(
select
agentid,
eventtype,
[DateTime],
datediff(mi,[DateTime],LEAD([DateTime]) over (partition by agentid order by [DateTime])) as [Time_in_state]
from yourTable)
select
agentid,
eventtype,
cast([DateTime] as Date) as TheDate,
sum(Time_in_state) as TotalTime,
from cte
group by
agentid,
eventtype,
cast([DateTime] as Date)
누구나 이것이 도움이되지 않았거나 효과가 없었던 이유에 대해 자세히 설명하고 싶습니까? :) ' – scsimon
시도 게시 텍스트가 아닌 이미지. ** complete ** 샘플 입력 및 출력도 제공하십시오. 현재 데이터 집합에 초를 표시하지 않고 출력에 표시합니다. 또한, 어떤 SQL 버전입니까? LEAD/LAG가 주어진 2012 년이라고 가정합니다. 2012 년 이후에는이 기능을 사용할 수 없으며 창 기능을 사용해야합니다. – scsimon
내가 그 안에 초를 표시하지 않은 엑셀로 결과를 복사 한, 나는 2012 년 – Rahul
는 지금까지 수행하고, 같은 이미 요청, 대신 사진의 적절한 예를 포함한다 무엇 이건 포함 SQL을 사용하고 있습니다. –