sami1220
@sami1220

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

BigQueryのテーブルデータの穴あき行を埋めたい

解決したいこと

当方、DWHやsqlをあまり触ったことがなくてやり方がわかりません…どなたかご教示願います。

BigQueryのテーブルデータの穴あき行を埋めたい。

現状:日々の業務データをBigQueryに、以下のマスターデータのように書きこんであります。
genderの列のように、「男性」と入力されていて欲しい行が空白となってしまっているデータを、一括で上書きしたいのですが、どのような方法がベストかわからず困っております。

20000行ほどのテーブルです

書き換えたいテーブルとは別に、idで紐づいている社員名簿のテーブルがあるので、これをうまく使うと良いのかとは思いましたが、なかなか辿り着けず困ってます…

発生している問題・エラー

-マスターデータ-
date	  id	   name	   gender  task
20220801	0001	山田 太郎		    projectA
20220802	0001	山田 太郎	男性     projectA
20220803	0001	山田 太郎            projectA
20220804	0001	山田 太郎	男性     projectB
20220805	0001	山田 太郎            projectB
20220801	0002	鈴木 一郎	男性	    projectA
20220802	0003	鈴木 一郎		    projectB
20220803	0004	鈴木 一郎	男性	    projectB
-社員名簿テーブル-
id      name        gender 
0001	山田 太郎	男性
0002	鈴木 一郎	男性
0003    井上 二郎  男性
0004    山田 花子  女性
0

1Answer

マスターデータテーブル、社員名簿テーブル双方のgenderカラムのデータ型が、例えばgenderテーブルのような別のマスタと紐づくidなどではなく単にテキストで保存されているだけなら、こんな感じのsqlでいいんじゃないでしょうか。

UPDATE
  `マスターデータ` a INNER JOIN `社員名簿テーブル` b
ON
  a.id = b.id
SET
  a.gender = b.gender
WHERE
  a.gender = '';

テスト用に複製したDBで確認してから試してくださいね。

1Like

Comments

  1. @sami1220

    Questioner

    ありがとうございます。
    まさに、この通りでしたm(_ _)m

    問題なかったので上書きしまして、無事に完了できました。助かりました。

Your answer might help someone💌