sql - BigQuery - 过滤器从嵌套表中无效
问题描述
我有这样的嵌套表:
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
解决方案
您可以使用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
)
推荐阅读
- tensorflow - 在 TensorFlow 对象检测模型中记录检测到的对象(并改善低 FPS)
- javascript - 如何结合 Formik 使用 React NumberFormat 包?
- algorithm - 将 Markdown 转换为 HTML 算法面试问题 - 最佳方法?
- swift - Swift数据到base64字符串与数据:内容/类型
- tcp - 使用 Jest 和 apollo-server 进行测试时模拟服务器问题
- java - 如何从 2 个不同的微调器加载 recyclerView
- c# - 这种在 C# 中比较两个对象的实现会很快工作吗?
- python - 在 EXE pyinstaller 中调用 subprocess.checkoutput()
- java - Spring Boot Hibernate 表不存在
- java - Rxjava 单元素缓冲区