BigQuery UNNEST, включая пустые строки?

Для BigQuery мы можем извлекать специальные повторяющиеся структуры с помощью UNNEST. Это очень хорошо работает, когда у вас есть данные в структурном ключе и значении (одно из строк, int или double). Однако иногда у меня есть структура с ключом ("foo") и часто со значением data.string_value, но не всегда. Следующее НЕ будет включать строку, если нет string_value:

SELECT
  event_timestamp,
  event_params_custom.value.string_value
FROM 
  `my_database.events_*` T,
  UNNEST(T.event_params) event_params_custom
WHERE
  event_name = "some_custom_event"
  AND event_params_custom.key = "foo"

Можно ли сделать что-то вроде «внешнего соединения» и включить все строки, даже если для ключа «foo» нет значения?


person Casper Bang    schedule 12.04.2020    source источник
comment
Не могли бы вы предоставить образцы данных?   -  person Sabri Karagönen    schedule 12.04.2020
comment
Я до сих пор не нашел решения проблемы, но нашел обходной путь. Вы можете разделить запрос на отдельные части, а затем объединить результаты, используя UNION ALL. Таким образом, ключ заключается в том, чтобы избежать дублирования, настраивая каждый из запросов, чтобы включать только те строки, в которых отсутствует конкретный ключ, который вы захватили в другом запросе: ... И 'STOP_NO' NOT IN (SELECT key FROM UNNEST (T.event_params ))   -  person Casper Bang    schedule 12.04.2020


Ответы (1)


person    schedule
comment
Так что не нужно присоединяться в принципе ?! Большое спасибо! - person Casper Bang; 12.04.2020