BigQuery:フェデレーションGoogleスプレッドシートに基づく2つの異なるテーブルを結合する

デビリングマスター

私は2つの異なるGoogleスプレッドシートを持っています:

4列のもの

+------+------+------+------+
| Col1 | Col2 | Col5 | Col6 |
+------+------+------+------+
| ID1  | A    | B    | C    |
| ID2  | D    | E    | F    |
+------+------+------+------+

前のファイルの4列と、さらに2列の1つ

+------+------+------+------+------+------+
| Col1 | Col2 | Col3 | Col4 | Col5 | Col6 |
+------+------+------+------+------+------+
| ID3  | G    | H    | J    | K    | L    |
| ID4  | M    | N    | O    | P    | Q    |
+------+------+------+------+------+------+

Google BigQueryでそれらをフェデレーションソースとして構成しました。次に、両方のテーブルのデータを結合するビューを作成する必要があります。

両方のテーブルにはCol1IDを含む列があり、このIDはすべてのテーブルで一意であり、レプリケートされたデータは含まれていません。

私が探している結果のテーブルは次のとおりです。

+------+------+------+------+------+------+
| Col1 | Col2 | Col3 | Col4 | Col5 | Col6 |
+------+------+------+------+------+------+
| ID1  | A    | NULL | NULL | B    | C    |
| ID2  | D    | NULL | NULL | E    | F    |
| ID3  | G    | H    | J    | K    | L    |
| ID4  | M    | N    | O    | P    | Q    |
+------+------+------+------+------+------+

最初のファイルにない列については、NULL値を期待しています。

私はstandardSQLを使用しています。これは、サンプルデータを生成するために使用できるステートメントです。

#standardsQL

WITH table1 AS (
  SELECT "A" as Col1, "B" as Col2, "C" AS Col3
  UNION ALL
  SELECT "D" as Col1, "E" as Col2, "F" AS Col3
),

table2 AS (
  SELECT "G" as Col1, "H" as Col2, "J" AS Col3, "K" AS Col4, "L" AS Col5
  UNION ALL
  SELECT "M" as Col1, "N" as Col2, "O" AS Col3, "P" AS Col4, "Q" AS Col5
)

UNION ALLテーブルの列が異なるため、シンプルは機能しません

SELECT * FROM table1
UNION ALL
SELECT * FROM table2

Error: Queries in UNION ALL have mismatched column count; query 1 has 3 columns, query 2 has 5 columns at [17:1]

また、フェデレーションソースはワイルドカード演算子をサポートしていないため、ワイルドカード演算子は適切な方法ではありません。

SELECT * FROM `table*`

Error: External tables cannot be queried through prefix

もちろん、これはサンプルデータであり、3〜5列しかないため、実際のテーブルには20〜40列あります。したがって、SELECTフィールドごとに明示的にフィールドする必要がある例は、重要な方法ではありません。

この2つのテーブルを結合するための実用的な方法はありますか?

ミハイル・ベリヤント

この2つのテーブルを結合するための実用的な方法はありますか?

#standardsQL
SELECT *, NULL AS Col5, NULL AS Col6 FROM table1
UNION ALL
SELECT * FROM table2  

あなたの例を使ってこれをチェックすることができます

#standardsQL
WITH table1 AS (
  SELECT "ID1" AS Col1, "A" AS Col2, "B" AS Col3, "C" AS Col4 
  UNION ALL
  SELECT "ID2", "D", "E", "F"
),
table2 AS (
  SELECT "ID3" Col1, "G" AS Col2, "H" AS Col3, "J" AS Col4, "K" AS Col5, "L" AS Col6 
  UNION ALL
  SELECT "ID4", "M", "N", "O", "P", "Q" 
)
SELECT *, NULL AS Col5, NULL AS Col6 FROM table1
UNION ALL
SELECT * FROM table2

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

異なるテーブルのデータを1つのコレクションに結合する

分類Dev

ソリューションテストのコードカバレッジ結果ファイルを、テストプロジェクトディレクトリではなくソリューションディレクトリに出力する方法

分類Dev

2つの異なる列の2つのパラメータに基づいてGoogleスプレッドシートを検索およびフィルタリングする方法

分類Dev

Googleスプレッドシート-異なるセルのテキストに基づいて、別のセルのテキストを変更します

分類Dev

異なるテーブルのリレーションに基づくデータを使用してSQLビューを作成する

分類Dev

Googleスプレッドシートのテーブルを結合する-完全結合

分類Dev

一致する数値を持つ2つのセルに基づくGoogleスプレッドシートの条件付き書式

分類Dev

オブジェクトの1つのフィールドに基づいてJavaコレクションオブジェクトをソートする

分類Dev

スレッドセーフを確保するdjangoのユーザーエージェントに基づくモバイルテンプレート

分類Dev

IDに基づく結合句を使用して2つのテーブルからフェッチする

分類Dev

キー列に基づいてGoogleスプレッドシートのタブをリンクする

分類Dev

Google スプレッドシートの 2 つの個別の列を 1 つの列に結合する

分類Dev

ブレードテンプレートのデータベースフィールドに基づいて選択したオプションを設定するにはどうすればよいですか?

分類Dev

2つのタブを1つの結果にマージする方法は?(Googleスプレッドシート)

分類Dev

2つの異なるデータベースPL / SQLの2つのテーブルで一致するレコードをチェックするためのストアドプロシージャ

分類Dev

hashcode()がオブジェクトのアドレスに基づいてハッシュコードを作成する場合、同じ内容の2つの異なるオブジェクトが同じハッシュコードを作成するにはどうすればよいですか?

分類Dev

R: 異なるディレクトリにあるループ ファイルから 2 つのテーブルを結合する

分類Dev

ルックアップを使用して2つの異なるコレクションからデータを取得する方法と、ルックアップに条件を追加して、条件に基づいてデータを取得する方法は?

分類Dev

フェデレーションクエリを使用してGoogleCloudPostgresテーブルをBigQueryに複製するBigQueryスクリプト

分類Dev

Javaストリーム:2つのコレクションを1つのマップに結合する

分類Dev

Javaストリーム:2つのコレクションを1つのマップに結合する

分類Dev

2つの基準で2つのテーブルを結合する「繰り返しフィールドでパーティション化できない」

分類Dev

SQLを使用した2つの異なるテーブルプレゼンテーション間でデータを均一に提示する

分類Dev

別のシートのリストに基づいて行をフィルタリングする方法は?(Googleスプレッドシート)

分類Dev

Googleスプレッドシートクエリ>文字列内のテキストに基づいて行をフィルタリングする

分類Dev

別のGoogleシートに基づくルックアップ値を使用してGoogleスプレッドシートを作成する

分類Dev

BigQueryとは異なるGCSストレージクラスのファイル/データをクエリするのにどのくらいの費用がかかりますか(フェデレーション/外部クエリ)?

分類Dev

MYSQL:レコードが見つからない場合、デフォルト値でIDに基づいてテーブルを結合する方法

分類Dev

Googleスプレッドシート-スプレッドシートの特定のシートに基づいてメールを送信する

Related 関連記事

  1. 1

    異なるテーブルのデータを1つのコレクションに結合する

  2. 2

    ソリューションテストのコードカバレッジ結果ファイルを、テストプロジェクトディレクトリではなくソリューションディレクトリに出力する方法

  3. 3

    2つの異なる列の2つのパラメータに基づいてGoogleスプレッドシートを検索およびフィルタリングする方法

  4. 4

    Googleスプレッドシート-異なるセルのテキストに基づいて、別のセルのテキストを変更します

  5. 5

    異なるテーブルのリレーションに基づくデータを使用してSQLビューを作成する

  6. 6

    Googleスプレッドシートのテーブルを結合する-完全結合

  7. 7

    一致する数値を持つ2つのセルに基づくGoogleスプレッドシートの条件付き書式

  8. 8

    オブジェクトの1つのフィールドに基づいてJavaコレクションオブジェクトをソートする

  9. 9

    スレッドセーフを確保するdjangoのユーザーエージェントに基づくモバイルテンプレート

  10. 10

    IDに基づく結合句を使用して2つのテーブルからフェッチする

  11. 11

    キー列に基づいてGoogleスプレッドシートのタブをリンクする

  12. 12

    Google スプレッドシートの 2 つの個別の列を 1 つの列に結合する

  13. 13

    ブレードテンプレートのデータベースフィールドに基づいて選択したオプションを設定するにはどうすればよいですか?

  14. 14

    2つのタブを1つの結果にマージする方法は?(Googleスプレッドシート)

  15. 15

    2つの異なるデータベースPL / SQLの2つのテーブルで一致するレコードをチェックするためのストアドプロシージャ

  16. 16

    hashcode()がオブジェクトのアドレスに基づいてハッシュコードを作成する場合、同じ内容の2つの異なるオブジェクトが同じハッシュコードを作成するにはどうすればよいですか?

  17. 17

    R: 異なるディレクトリにあるループ ファイルから 2 つのテーブルを結合する

  18. 18

    ルックアップを使用して2つの異なるコレクションからデータを取得する方法と、ルックアップに条件を追加して、条件に基づいてデータを取得する方法は?

  19. 19

    フェデレーションクエリを使用してGoogleCloudPostgresテーブルをBigQueryに複製するBigQueryスクリプト

  20. 20

    Javaストリーム:2つのコレクションを1つのマップに結合する

  21. 21

    Javaストリーム:2つのコレクションを1つのマップに結合する

  22. 22

    2つの基準で2つのテーブルを結合する「繰り返しフィールドでパーティション化できない」

  23. 23

    SQLを使用した2つの異なるテーブルプレゼンテーション間でデータを均一に提示する

  24. 24

    別のシートのリストに基づいて行をフィルタリングする方法は?(Googleスプレッドシート)

  25. 25

    Googleスプレッドシートクエリ>文字列内のテキストに基づいて行をフィルタリングする

  26. 26

    別のGoogleシートに基づくルックアップ値を使用してGoogleスプレッドシートを作成する

  27. 27

    BigQueryとは異なるGCSストレージクラスのファイル/データをクエリするのにどのくらいの費用がかかりますか(フェデレーション/外部クエリ)?

  28. 28

    MYSQL:レコードが見つからない場合、デフォルト値でIDに基づいてテーブルを結合する方法

  29. 29

    Googleスプレッドシート-スプレッドシートの特定のシートに基づいてメールを送信する

ホットタグ

アーカイブ