You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

BigQuery SQL:全连接双查询时合并日期列实现透视效果

解决BigQuery FULL JOIN后日期列合并问题

我懂你遇到的困扰啦——FULL JOIN之后两边的date列各自有空值,还多出来一个tab_2_date列,想要把日期合并成单一列,实现你要的透视效果对吧?

你可以用BigQuery的COALESCE函数来搞定这个问题,这个函数会返回参数列表里第一个非null的值,刚好适合合并两个可能为空的日期列。修改后的查询语句如下:

SELECT 
  COALESCE(TAB_1.date, TAB_2.date) AS date,
  TAB_1.grob_r1,
  TAB_2.grob_r2
FROM (
  SELECT date, grob as `grob_r1`
  FROM `mytab_tbl`
  WHERE region = "r1"
) AS TAB_1
FULL JOIN (
  SELECT date, grob as `grob_r2`
  FROM `mytab_tbl`
  WHERE region = "r2"
) AS TAB_2 ON TAB_1.date = TAB_2.date

关键说明:

  • COALESCE(TAB_1.date, TAB_2.date):当TAB_1的date为空时,自动取TAB_2的date值;反之则取TAB_1的date,完美合并成你需要的单一日期列。
  • 直接选择两个子查询里的grob_r1和grob_r2,既避免了重复列的问题,也不需要保留额外的tab_2_date。

执行这个查询后,就能得到你期望的结果:

Row | date | grob_r1 | grob_r2

1 | 2020-03-28 | null | 10
2 | 2020-03-29 | 20 | null

内容的提问来源于stack exchange,提问作者SubZeno

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 11:57:43