BigQuery - фильтр исключен из вложенной таблицы - PullRequest
0 голосов
/ 29 января 2020

У меня есть такая вложенная таблица:

BASKET-LEVEL                  PRODUCT_LEVEL             PAYMENT_LEVEL
id, gross_value,is_voided     gross_value, is_voided    amount, is_voided
                              gross_value, is_voided    amount, is_voided

Мне нужно убедиться, что я отфильтровал is_voided = true на каждом уровне детализации.

Каков наилучший подход к это проблема?>

SELECT BL.* FROM BASKET-LEVEL AS BL
LEFT JOIN UNNEST(PRODUCT_LEVEL) AS PROD
LEFT JOIN UNNEST(PAYMENT_LEVEL) AS PAY
WHERE BL.isVoided is false
AND PROD.isVoided is false
AND PAY.isVoided is false

1 Ответ

2 голосов
/ 29 января 2020

вы можете использовать EXISTS как этот, с подвыбором, который использует UNNEST и адрес атрибута

SELECT
* 
from `table`
  WHERE NOT EXISTS 
      (
       SELECT 1 FROM UNNEST (product_level)  
       WHERE is_voided is true
      )
  AND NOT EXISTS
      (
       SELECT 1 FROM UNNEST (payment_level)  
       WHERE is_voided is true
      )
...