BigQuery UNNEST включва празни редове?

За BigQuery можем да извлечем специалните повтарящи се структури с помощта на UNNEST. Това работи много добре, когато имате данни в ключа на структурата и стойност (един от низ, int или double). Понякога обаче имам структура с ключ ("foo") и често с data value.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