google-data-studio - 如何将值添加到谷歌数据工作室中不存在为 0 的图表?
问题描述
我在 BigQuery 中有 4 个表,用于保存消息队列中消息的统计信息。这些表是:receivedMessages、processedMessages、skippedMessages 和 failedMessages。每个表都有一个 header.processingMetadata.approximateArrivalTimestamp,您可能已经猜到它是一个时间戳字段。
我的目的是为每个在该字段中聚合的表格创建 4 个图表,以及使用以下公式显示每天每个消息类别相对于收到消息以及未知状态消息的百分比的第 5 个图表:
UNKNOWN_STATUS_MESSAGES = TOTAL_RECEIVED_MESSAGES - (TOTAL_PROCESSED_MESSAGES + TOTAL_SKIPPED_MESSAGES + TOTAL_FAILED_MESSAGES)
但是有些日子没有跳过或失败的消息,因此这两个表中的 Big Query 中没有记录。这导致这 2 个图形缺少日期,并且在第 5 个图形中也没有正确显示 UNKNOWN_STATUS_MESSAGES。
我还在图表中使用以下代码作为指标,但没有成功(每次都适当地更改变量名称)。
CASE WHEN TOTAL_FAILED_MESSAGES IS NULL THEN 0 ELSE TOTAL_FAILED_MESSAGES END
有没有办法让谷歌数据工作室用 0 填充没有数据的日期,以便我可以正确显示图表?
解决方案
正如我发现的那样,也可以使用日期参数在非固定日期执行此操作。所以汗的答案的第一部分可以重写为:
WITH dates AS (
select *
from unnest(generate_date_array(PARSE_DATE('%Y%m%d', @DS_START_DATE), PARSE_DATE('%Y%m%d', @DS_END_DATE), interval 1 day)) as day
)
推荐阅读
- python - 如何将 count() 数字除以 Mongodb/Python 中的数字?
- tensorflow - 用于训练和推理的 TensorFlow 嵌入
- html - “如何使用谷歌地图 API 让搜索框自动完成”
- php - 如何在不删除旧数据的情况下向数据库列添加新值
- angular - Angular 6,如何获取“onSelectionChange”dom事件的目标元素?
- django - NoReverseMatch 在 /products/ ,“产品”不是注册的命名空间
- angular - 星云企业主题不能开箱即用
- ios - Swift 将不同类型组合成一个数组来显示 UITableView 的数据
- android - 如何在 android (editText) 中编写新的材料设计文本字段
- c++ - GNU GCC 会跟踪以前使用箭头运算符取消引用的对象吗?