Not a member of Pastebin yet?
                        Sign Up,
                        it unlocks many cool features!                    
                - DECLARE @calendar TABLE (dateTime DATETIME)
 - DECLARE @daTetime DATETIME = '2020-07-08'
 - SET NOCOUNT ON
 - WHILE CAST(@dateTime AS DATE) < '2020-11-08'
 - BEGIN
 - INSERT INTO @calendar (dateTime) VALUES (@dateTime)
 - SET @dateTime = DATEADD(MINUTE,5,@dateTime)
 - END
 - SET NOCOUNT OFF
 - ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 - ;with tab as (
 - SELECT a.[Session Id]
 - , a.[Participant Id]
 - , a.[Full Name]
 - , a.[UserAgent]
 - , SessionStartTime
 - , SessionEndTime
 - , a.[Role]
 - FROM(
 - SELECT [Session Id]
 - , [Participant Id]
 - , [Full Name]
 - , [UserAgent]
 - , [UTC Event Timestamp] as SessionStartTime
 - , [Action]
 - , [Role]
 - FROM [dbo].[meetings]
 - WHERE Action = 'joined'
 - ) s join (
 - SELECT [Session Id]
 - ,[Participant Id]
 - ,[Full Name]
 - ,[UserAgent]
 - ,[UTC Event Timestamp] as SessionEndTime
 - ,[Action]
 - ,[Role]
 - FROM [dbo].[meetings]
 - WHERE Action = 'Left'
 - ) a on s.[Session Id] = a.[Session Id]
 - )
 - SELECT *,
 - DATEDIFF(SECOND,
 - CASE WHEN e.SessionStartTime >= c.dateTime THEN e.SessionStartTime
 - WHEN e.SessionStartTime < c.dateTime THEN c.dateTime
 - END,
 - CASE WHEN e.SessionEndTime <= DATEADD(MINUTE,5,c.dateTime) THEN e.SessionEndTime
 - WHEN e.SessionEndTime > DATEADD(MINUTE,5,c.dateTime) THEN DATEADD(MINUTE,5,c.dateTime)
 - END
 - ) as granularity
 - FROM @calendar c
 - LEFT OUTER JOIN tab e
 - ON e.SessionStartTime BETWEEN c.dateTime AND DATEADD(MINUTE,5,c.dateTime)
 - OR e.SessionEndTime BETWEEN c.dateTime AND DATEADD(MINUTE,5,c.dateTime)
 - OR c.dateTime BETWEEN e.SessionStartTime AND e.SessionEndTime
 - where [Session Id] is not null
 
Advertisement
 
                    Add Comment                
                
                        Please, Sign In to add comment