Стандартный запрос SQL, возвращающий правильные результаты в BigQuery, но не в Data Studio - PullRequest
0 голосов
/ 13 января 2020

Мне нужно вернуть список имен, параметры которых находятся между 2 датами. У меня есть жестко запрограммированные две даты как часть проверки данных. Мой запрос sql в BigQuery выглядит следующим образом:

declare DS_START_DATE FLOAT64;
declare DS_END_DATE FLOAT64;

SET DS_START_DATE = 1578390532050;
SET DS_END_DATE =  1578391211289;

SELECT DISTINCT
  Name AS block_names
FROM
  my_data_source
LEFT JOIN
  UNNEST (holes) AS n_holes
ON
  1=1
  WHERE
  (n_holes.LastModifiedHoleDate ) > CAST(DS_START_DATE as FLOAT64)
  AND n_holes.LastModifiedHoleDate < CAST(DS_END_DATE as FLOAT64)

Примечание: DS_START_DATE и DS_END_DATE оба находятся в UNIX времени.

Так что в основном я запрашиваю результаты, которые были изменено 7 января, которое будет возвращать только один результат.

Приведенный выше запрос возвращает только один результат, который является правильным.

Я немного изменил формат запроса, так что я могу использовать его при подключении к моей таблице в BigQuery из Data Studio:

SELECT DISTINCT
  Name AS block_names,
n_holes.LastModifiedHoleDate as LM
FROM
  my_data_source
LEFT JOIN
  UNNEST (holes) AS n_holes
ON
  1=1
  WHERE
  (n_holes.LastModifiedHoleDate ) >= CAST(@DS_START_DATE as FLOAT64)
  AND n_holes.LastModifiedHoleDate <= CAST(@DS_END_DATE as FLOAT64)

Я включил параметры даты в моем источнике данных Data Studio и завершил создание источника данных.

enter image description here

Затем я составил отчет об испытаниях, используя вышеуказанный источник данных для отчета. У меня просто есть элемент управления диапазоном дат и диаграмма в моем отчете.

Независимо от того, какой диапазон я выбираю для диапазона дат, я получаю два результата на графике, где я должен получить только один.

enter image description here

Обычно в таблицах и диаграммах, которые я использовал в Data Studio, есть возможность выбрать измерение диапазона дат, связывающее данные с диапазоном дат, выбранным для времени даты. picker:

Таблица, которую я добавил в этот отчет, не имеет такой опции. Я предполагаю, что это правильно, потому что мы используем источник данных, которому нужна дата начала и окончания?

Параметр параметров на диаграмме не содержит ничего:

enter image description here

Опять же, я предполагаю, что Data Studio не нужны параметры, указанные из-за того, что я использую даты начала и окончания.

Что я упустил из-за того, что у меня нет выбора диапазона дат влияет на данные, отображаемые на моем графике? Кажется, что он автоматически связан с графиком, но результаты неверны.

Большое спасибо заранее!

1 Ответ

0 голосов
/ 14 января 2020

Вам нужно преобразовать @DS_START_DATE и @DS_END_DATE в Unix метку времени, если вы хотите сравнить их с одним. Для меня это помогло:

WHERE
n_holes.LastModifiedHoleDate >= UNIX_MILLIS(PARSE_TIMESTAMP('%Y%m%d', @DS_START_DATE))
AND n_holes.LastModifiedHoleDate <= UNIX_MILLIS(PARSE_TIMESTAMP('%Y%m%d', @DS_END_DATE))

Надеюсь, это также сработает и для вас!

...