ホームページ >データベース >mysql チュートリアル >BigQuery の UNPIVOT 演算子は表形式データをどのように再構築できるのでしょうか?
データを表構造からより柔軟で使いやすい形式に再編成することが多くの場合必要になります。 BigQuery では、UNPIVOT 演算子がこの変換に対する強力なソリューションを提供します。
次の例を考えてみましょう:
元のテーブル構造:
product | Q1 | Q2 | Q3 | Q4 |
---|---|---|---|---|
Kale | 51 | 23 | 45 | 3 |
Apple | 77 | 0 | 25 | 2 |
希望のテーブル構造:
product | sales | quarter |
---|---|---|
Kale | 51 | Q1 |
Kale | 23 | Q2 |
Kale | 45 | Q3 |
Kale | 3 | Q4 |
Apple | 77 | Q1 |
Apple | 0 | Q2 |
Apple | 25 | Q3 |
Apple | 2 | Q4 |
UNPIVOT を使用した SQL クエリ:
SELECT product, value AS sales, OFFSET AS quarter FROM UNNEST(FLATTEN( ARRAY( STRUCT('Q1' AS OFFSET, Q1 AS value), STRUCT('Q2' AS OFFSET, Q2 AS value), STRUCT('Q3' AS OFFSET, Q3 AS value), STRUCT('Q4' AS OFFSET, Q4 AS value) ) )) AS UNNESTED ORDER BY product, quarter;
このクエリは、ARRAY 関数と STRUCT 関数を使用して、構造体の一時配列を作成します。元のテーブルの各行。次に、FLATTEN 関数を使用して、配列内の各構造体から構造体フィールド (売上と四半期) を抽出します。最後に、UNNEST 演算子を使用して ARRAY から個々の値を抽出します。
結果のテーブルは、製品、売上、四半期の列を含む目的の形式になります。
以上がBigQuery の UNPIVOT 演算子は表形式データをどのように再構築できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。