Заполнение пробелов для столбца на основе другого столбца в BigQuery Standard SQL - PullRequest
0 голосов
/ 01 ноября 2018

У меня есть данные об артистах / певцах, и для каждого из них у меня есть следующие столбцы:

фб

инст

ТВт

звук

soundcloud_id

facebook_id

instagram_id

twitter_id

Чтобы уточнить, «fb» означает Facebook, «inst» означает Instagram, «tw» означает Twitter, а «sound» означает Soundcloud.

Есть несколько строк (или исполнителей), в которых, например, 'fb' заполнено, но 'facebook_id' равно нулю. Кроме того, у меня также есть несколько строк, в которых «fb» имеет значение null, но «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]. Как бы я сделал это без ОБНОВЛЕНИЯ?

1 Ответ

0 голосов
/ 01 ноября 2018

Ниже для 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`
...