如何在Tableau中计算两日期时间列的骑行时长并解决均值计算报错?
在Tableau中计算时长并求平均值的解决方法
不用回SQL改数据类型,在Tableau里就能搞定,按下面步骤来:
先确保计算出的时长是数值类型
别直接把时长转成带单位的字符串,直接用DATEDIFF函数计算,指定你需要的时间单位(比如分钟、秒、小时),返回的就是数值:
示例(计算分钟数):DATEDIFF('minute', [Started_time], [ended_time])这个结果是整数,属于数值类型,完全可以用
AVG计算平均值。如果已经有字符串类型的时长列,先转成数值
如果你的total duration是带单位的字符串(比如"15分钟"),先提取里面的数字:- 要是字符串里只有数字(比如"15"),直接用
INT([total duration])或者FLOAT([total duration])转成数值 - 要是带单位,用正则提取数字:
INT(REGEXP_EXTRACT([total duration], '(\d+)'))
- 要是字符串里只有数字(比如"15"),直接用
计算平均时长
有了数值类型的时长列后,直接用AVG([数值型时长列])就能算出平均值。要是想把结果转成更直观的格式(比如小时:分钟),可以用DATEADD把数值转成时间,或者拼接单位,比如:STR(FLOOR(AVG([时长分钟数])/60)) + '小时' + STR(MOD(AVG([时长分钟数]),60)) + '分钟'
内容的提问来源于stack exchange,提问作者Louis A
相关产品推荐
相关产品推荐

