Google Data Studio(Looker)时长字符串转换及求和去重问题
Google Data Studio(Looker)时长处理方案
1. 将hh:mm:ss格式字符串转为可求和数值
直接用CAST(workout-duration AS NUMBER)无效,因为hh:mm:ss是带分隔符的字符串,无法直接转换为数字。可以通过拆分时分秒并计算总秒数(或分钟数)来实现:
创建一个计算字段,使用以下公式:
(CAST(REGEXP_EXTRACT(workout-duration, r'^(\\d+):') AS NUMBER) * 3600) + (CAST(REGEXP_EXTRACT(workout-duration, r':(\\d+):') AS NUMBER) * 60) + CAST(REGEXP_EXTRACT(workout-duration, r':(\\d+)$') AS NUMBER)
这个公式会把00:45:10这类字符串转为2710(总秒数),之后就可以对该字段求和,统计月度总训练时长。如果需要以小时/分钟为单位,只需将结果除以3600/60即可。
2. 单日多次训练保留最长时长记录
无需上游处理,在Data Studio内通过聚合设置即可实现:
- 先按第一个问题的方法,将时长转为总秒数字段(比如命名为
total_seconds) - 在报表的图表配置中,维度选择
用户ID和日期,指标选择total_seconds并设置聚合方式为最大值(MAX) - 这样每个用户每天只会展示最长的训练时长,相当于自动过滤了较短的记录。如果需要在数据源层面固化这个逻辑,可以在数据来源的编辑界面,添加
用户ID和日期为维度,将total_seconds的聚合设为MAX,保存后数据源就只会返回每个用户每日的最长时长记录。
以上两个需求都可以在Google Data Studio内完成配置,无需提前在上游数据源转换。
内容的提问来源于stack exchange,提问作者KopkaCobana
相关产品推荐
相关产品推荐

