我有一些用户在24小时内每小时都有随机值。我想获得每小时的平均值,随着它的增加而增加。例如:在下午3点设置值为3,然后在下午4点设置为4,在下午5点设置为5,则求出每小时的平均值,并在没有更多时间戳时给出总平均值。
我已经尝试过了:
case
when (DatePart("hour",[AUDIT_TSP])>0) and (DatePart("hour",[AUDIT_TSP])<1)
then Date([AUDIT_TSP]) & " " & ":00" & ":00" & Second([AUDIT_TSP])
when (DatePart("hour",[AUDIT_TSP])=1) and (DatePart("minute",
[AUDIT_TSP])>0) then Date([AUDIT_TSP]) & " " & ":01" & ":00" &
Second([AUDIT_TSP])
else null end
这是基于sporfire: calculate the avg per 15 minutes的,我对其进行了调整以供使用,但无法获得显示平均小时数而不是15分钟平均时间的代码。所以我想在这里问。
我的AUDIT_TSP用DateTime格式化,示例值如下:
4/15/2019 6:16:59 AM
4/15/2019 6:20:05 AM
这些值仅是发货量,每小时1个发货,每小时2个发货,依此类推。只是试图获取每小时的平均值。
我不希望每小时的平均时间显示在时间轴上,这里显示的值是每小时的发货量。如果平均值可以显示在时间轴上,那么很好,如果不能显示,那么我也可以听到并在文本框中显示它。
答案 0 :(得分:1)
您可以生成一个中间列,以将每个小时标记为
[hourBin]计算为:Integer(ToEpochSeconds([time-stamp])/ 3600)
这里[时间戳]是您的时间戳列。 ToEpochSeconds(..)计算从参考日期(通常是1970年1月1日)起的秒数。当将其除以3600并取整数部分时,会得到一个小时计数器。
然后平均每个小时的值
Avg([value])OVER([hourBin])
和/或以[hourBin]为类别,在[value]的箱形图中可视化平均值及其周围的分布。
如果您希望中间列看起来更有意义,则可以按其第一个值重新缩放它,使其从0开始(或添加您想要的任何数字):
Integer(ToEpochSeconds([时间戳记))/ 3600)-Min(Integer(ToEpochSeconds([时间戳记))/ 3600))