Заполнение пробелов для столбца на основе другого столбца в BigQuery Standard SQL
У меня есть данные об артистах / певцах, и для каждого из них у меня есть следующие столбцы:
фб
инст
общий вес
звук
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]. Причина в том, что эта таблица была создана только некоторыми подзапросами и манипулированием данными с использованием данных из моей базы данных. Другими словами, я на самом деле не сохранил свою текущую таблицу, поэтому я не могу использовать UPDATE [COLUMN]. Как бы я сделал это без ОБНОВЛЕНИЯ?
1 ответ
Ниже для BigQuery Standard 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`