基于 BigQuery Standard 中的其他列为列填空 SQL

Filling in Blanks for a Column Based on Other Column in BigQuery Standard SQL

我有关于 artists/singers 的数据,对于每个数据,我都有以下列:

fb

研究所

tw

声音

soundcloud_id

facebook_id

instagram_id

twitter_id

澄清一下,'fb' 表示 Facebook,'inst' 表示 Instagram,'tw' 表示 Twitter,'sound' 表示 Soundcloud。

有一些行(或艺术家),例如,'fb' 已填充,但 'facebook_id' 为空。同样,我也有一些行,其中 'fb' 为空但 'facebook_id' 已填充。这也适用于其他列。

我的目标是,对于每个艺术家,通过用相应的列值填充空值来更新 'fb'、'tw'、'sound' 和 'inst' 列'facebook_id'、'twitter_id'、'soundcloud_id' 和 'instagram_id'。

例如,如果我有:

inst instagram_id

NULL 示例 456

我要:

inst instagram_id

example456 example456

注意:我不想使用 UPDATE [COLUMN]。原因是这个 table 只是通过使用我数据库中的数据的一些子查询和数据操作创建的。换句话说,我实际上并没有存储我当前的 table,所以我不能使用 UPDATE [COLUMN]。如果没有更新我该怎么做?

以下适用于 BigQuery 标准 SQL

#standardSQL
SELECT 
  IFNULL(fb, facebook_id) fb,
  IFNULL(inst, instagram_id) inst,
  IFNULL(tw, twitter_id) tw,
  IFNULL(sound, soundcloud_id) sound,
  soundcloud_id,
  facebook_id,
  instagram_id,
  twitter_id
FROM `project.dataset.table`