【发布时间】:2015-08-19 14:01:16
【问题描述】:
我正在尝试根据另一个数据集中的条件过滤数据集。在代码中是这样的(虽然这不起作用):
SELECT
location_integer
FROM
[datasetA]
WHERE
(SELECT COUNT(*) FROM datasetB
WHERE
datasetB.region_start < datasetA.location_integer
AND datasetA.location_integer < datasetB.region_end) > 1
用文字表示:datasetA 有一列位置(整数),datasetB 有一列由 region_start 和 region_end 指定的区域。我想通过datasetB 中是否存在包含datasetA.location 的区域来过滤datasetA。如果不存在这样的区域,我想过滤掉该行。
创建一个包含datasetA 中每个位置的区域数量的中间表同样好,然后对其进行过滤,但我也没有设法弄清楚。
这些表是否必须包含在同一个数据集中才能正常工作?
感谢您的帮助。
【问题讨论】:
-
那里在做什么?那应该是一个简单的“WHERE”。
-
@Pentium10 是的,您完全正确,刚刚更新了问题。我想我已经把它缩小到 BigQuery SQL 不理解
WHERE (...) > 1,特别是> 1位的事实。这是我试图弄清楚如何表达EXISTS,因为它存在于某些关系数据库中。
标签: google-bigquery