计算在给定时间工作的人数

Counting the number of people working at a given time

我有数据显示员工登录和注销的时间。我将他们登录的持续时间称为 "Ready" 时间,将他们注销的时间称为 "Not Ready" 时间。我想要做的是有一个连续的、渐变的时间轴,显示有多少人处于准备状态。

关于数据的一些说明:

假设你的数据是这样的

employee    start_time  end_time
E1  7/7/2017  10:03:10 AM   7/7/2017  18:03:10 AM
E2  7/7/2017  10:10:10 AM   7/7/2017  18:03:10 AM
E3  7/7/2017  10:13:10 AM   7/7/2017  18:03:10 AM
E1  7/7/2017  11:03:10 AM   7/7/2017  19:03:10 AM
E2  7/7/2017  10:30:10 AM   7/7/2017  18:03:10 AM

在这种情况下,我将按照以下步骤操作:

  • 检查 start_time 和 end_time 列是否不是 'timestamp' 格式然后右键单击它并转到 'Change data type' 到 select 'Date & Time'
  • 创建一个参数Select_Report_DateTime。参数中windowselect数据类型='Date & Time';显示格式='Automatic';允许值 = 'All'
  • 右击该参数select'Show parameter control'
  • 创建计算字段 default_date_time 作为 #1/1/1900 12:00:00 AM#。如果它不是 'timestamp' 格式然后右键单击它并转到 'Change data type' 到 select 'Date & Time'
  • 创建计算字段 Report_DateTime_formatted

IF [Select_Report_DateTime] == [default_date_time] then now()
ELSE [Select_Report_DateTime]
END

  • 创建计算字段 Users(inReadyState) as

IF (([Report_DateTime_formatted] >= [start_time]) & 
    ([Report_DateTime_formatted] < [end_time])) THEN "Yes"
ELSE "No"
END

  • 现在将 Users(inReadyState) 拖入 'Columns',将 CNT[employee] 拖入 'Rows',将 'Marks' 拖入 Bar。
  • 您可以根据自己的具体要求使用此模型获得 o/p。

如果有帮助,别忘了告诉我们:)