BigQuery按日期和名称两列关联表时未匹配行计数补0如何实现
BigQuery 全外连接补零实现方案
调整后的SQL如下:
SELECT date, name, IFNULL(table_1.count, 0) AS count_1, IFNULL(table_2.count, 0) AS count_2 FROM table_1 FULL OUTER JOIN table_2 USING(date, name)
逻辑说明
FULL OUTER JOIN USING(date, name)本身会保留两张表所有date+name的组合行,不会仅返回匹配项。如果你之前执行只返回了两表共有的行,检查是否在WHERE子句中增加了过滤table_1.count或table_2.count非空的条件,去掉这类过滤条件即可。- 用
IFNULL函数将关联不上的行对应的count字段的NULL值替换为0,满足补零需求,同时重命名字段避免同名冲突。如果需要兼容多数据库语法,也可以将IFNULL替换为COALESCE,执行效果完全一致。
内容的提问来源于stack exchange,提问作者nexx
相关产品推荐
相关产品推荐

