Неточное COUNT DISTINCT Агрегация с измерением даты в Google Data Studio - PullRequest
0 голосов
/ 03 июня 2019

Когда я объединяю значения в Google Data Studio с измерением даты на PostgreSQL Connector , я вижу некорректное поведение. Симптом состоит в том, что выполнение COUNT(DISTINCT) возвращает то же значение, что и COUNT():

incorrect count value for userid when connector is postgres

Моя теория заключается в том, что это как-то связано с агрегацией данных, происходящих после того, как подсчет уже произошел. Если я попытаюсь выполнить одинаковую агрегацию для тех же данных в экспортированном CSV вместо прямого подключения PostgreSQL Источник данных , проблема не будет воспроизведена:

correct count value for userid when connector is a csv file

My PostgreSQL Connector подключается к Amazon Redshift (jdbc:postgresql://*******.eu-west-1.redshift.amazonaws.com) с помощью следующего пользовательского запроса:

SELECT
  userid,
  submissionid,
  date
FROM mytable

Обход

Если я перестану использовать поле date по умолчанию для Измерение даты и агрегирую мои собственные даты непосредственно в запросе SQL (date_byweek), агрегация COUNT(DISTINCT) будет работать, как и ожидалось:

SELECT
  userid,
  submissionid,
  to_char(date,'YYYY-IW') as date_byweek
FROM mytable

Хотя этот обходной путь решает мою непосредственную проблему, он отстой, потому что я упускаю все функции даты, предоставляемые Data Studio ( Развертка иерархии , Фильтрация диапазона дат и т. Д.) , Не говоря уже о снижении моей уверенности в том, что еще может быть «глючит» внутри продукта ?


Как воспроизвести

Если вы хотите воссоздать проблему, используйте следующие данные как PostgreSQL Источник данных должно быть достаточно:

> SELECT * FROM mytable
  userid  submissionid
-------- -------------
       1             1
       2             2
       1             3
       1             4
       3             5

> COUNT(DISTINCT userid) -- ERROR:    Returns 5 when data source is PostgreSQL
> COUNT(DISTINCT userid) -- EXPECTED: Returns 3 when data source is CSV (exported from same PostgreSQL query above)

1 Ответ

0 голосов
/ 27 июня 2019

У меня такая же проблема с MySQL, Connector.Но моя проблема решается, когда я меняю формат поля даты в БД с DATETIME (ГГГГ-ММ-ДД ЧЧ: ММ: СС) на INT (Unixtimestamp).После подключения этой таблицы к Googe Datastudio я установил тип для этого поля как Дата (ГГГГММДД) и все работает, как и ожидалось.Надеюсь, это может вам помочь:)

...