Сглаживание с отсутствующими или без результатов - PullRequest
0 голосов
/ 07 февраля 2019

Я довольно новичок в Bigquery, и я хотел бы развернуть 2 таблицы в одном запросе.

Я попытался выполнить приведенный ниже код, но это не сработало.Он дал мне это сообщение: «Этот запрос не дал результатов».

SELECT
    timestamp AS Date,
    A.key,
    B.name
FROM `pms_table_request_log.partners_request_log_*`,
     UNNEST(jsonPayload.response.body.channels) AS A,
     UNNEST(jsonPayload.response.body.data.rows) AS B;

Я ожидаю, что ключ и имя будут неопубликованными.

1 Ответ

0 голосов
/ 07 февраля 2019

Если с помощью функции unnesting вы хотите «сгладить», что означает перевод данных из полей массива на верхний уровень, вы можете попробовать LEFT JOIN вместо CROSS JOIN (который является запятой)

SELECT timestamp AS Date ,A.key ,B.name 
FROM pms_table_request_log.partners_request_log_* 
  LEFT JOIN UNNEST(jsonPayload.response.body.channels) AS A 
  LEFT JOIN UNNEST(jsonPayload.response.body.data.rows) AS B

Если какой-либо массив пуст, CROSS JOIN уничтожит всю строку, а LEFT JOIN сохранит левую "таблицу"

...