【发布时间】:2015-07-29 20:48:55
【问题描述】:
我有一个查询,它给出了同一日期四个不同表中的记录总数。我将它们过滤为五个相关项目并排除一种类型。
SELECT
COUNT (*) AS table_total_filtered
FROM
db.table_1_20150727,
db.table_2_20150727,
db.table_3_20150727,
db.table_4_20150727
WHERE
item LIKE "A" OR item LIKE "B" OR item LIKE "C"
OR item LIKE "D" OR item LIKE "E" AND
type NOT LIKE "Z"
我有第二个查询,它给了我第二个表中的行数。数据可能存在时区差异,因此我将表格拉出三天,目标日期为中间日期。
SELECT
COUNT (*) AS table_2_total
FROM
db2.table_20150726,
db2.table__20150727,
db2.table__20150728
这两个表有一个共同的字段。公共字段在每个表中具有不同的名称。该字段在 table_1、table_2、table_3 和 table_4 中称为 ID1。在表中称为 ID2。我想获取第二个查询的结果,然后计算两个 ID 匹配的次数。
SELECT
COUNT (*) AS overlap
FROM
db.table_1_20150727,
db.table_2_20150727,
db.table_3_20150727,
db.table_4_20150727,
db2.table_20150726,
db2.table__20150727,
db2.table__20150728
WHERE
item LIKE "A" OR item LIKE "B" OR item LIKE "C"
OR item LIKE "D" OR item LIKE "E" AND
type NOT LIKE "Z" AND
ID1 = ID2
据我了解,此查询不起作用,因为第一步计算第一个表的计数,并试图计算不存在的 ID2。使用表名限定字段似乎也不起作用,因为文本不会变成蓝色。我相信此时排位赛不是我的问题,我需要做的是将第一个查询的结果与第二个查询的结果进行左连接,然后计算 ID1=ID2 的位置?
非常感谢任何有关如何编写/处理适当语句以连接这两个查询并计算 ID1 与 ID2 匹配的记录数的帮助!
谢谢!
【问题讨论】:
标签: google-bigquery