小编Pau*_*ulo的帖子

Google 数据洞察中日期维度的 COUNT DISTINCT 聚合不准确

当我使用PostgreSQL Connector上的日期维度在 Google Data Studio 中聚合值时,我看到了错误的行为。症状是执行返回与以下相同的值:COUNT(DISTINCT)COUNT()

当连接器为 postgres 时,用户 ID 的计数值不正确

我的理论是,它与计数已经发生后发生的数据聚合有关。如果我尝试对导出的CSV 中的相同数据进行完全相同的聚合,而不是直接从PostgreSQL Connector Data Source中进行聚合,则问题不会重现:

当连接器是 csv 文件时用户 ID 的正确计数值

我的PostgreSQL 连接器正在使用以下自定义查询连接到Amazon Redshift ( jdbc:postgresql://*******.eu-west-1.redshift.amazonaws.com):

SELECT
  userid,
  submissionid,
  date
FROM mytable
Run Code Online (Sandbox Code Playgroud)

解决方法

如果我停止使用日期维度的默认date字段并直接在 SQL 查询 ( ) 中聚合我自己的日期,聚合将按预期工作:date_byweekCOUNT(DISTINCT)

SELECT
  userid,
  submissionid,
  to_char(date,'YYYY-IW') as date_byweek
FROM mytable
Run Code Online (Sandbox Code Playgroud)

虽然这个变通方法解决了我眼前的问题,但它很糟糕,因为我错过了 Data Studio 提供的所有日期功能(层次结构钻取日期范围过滤等)。更不用说降低我对产品中其他可能存在“问题”的信心


如何繁殖

如果您想重新创建问题,使用以下数据作为PostgreSQL 数据源就足够了:

> SELECT * FROM mytable
  userid  submissionid
-------- -------------
       1 …
Run Code Online (Sandbox Code Playgroud)

amazon-redshift google-data-studio

6
推荐指数
1
解决办法
1929
查看次数