Maison >base de données >tutoriel mysql >Comment annuler le pivotement des données dans BigQuery ?

Comment annuler le pivotement des données dans BigQuery ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-23 03:19:09935parcourir

How to Unpivot Data in BigQuery?

Comment transformer des données d'une structure pivotée en une structure non pivotée dans BigQuery

Dans BigQuery, vous êtes confronté au défi de transformer une tableau croisé dynamique dans un format non pivoté. Cela implique de transposer les données dans une représentation plus tabulaire. Pour y parvenir, envisagez les étapes suivantes :

Utilisation de l'opérateur UNPIVOT (recommandé)

BigQuery propose désormais un opérateur UNPIVOT dédié qui simplifie cette transformation. Cet opérateur vous permet de spécifier les colonnes pivot à faire pivoter (par exemple, Q1, Q2, Q3, Q4) et les colonnes résultantes (par exemple, ventes, trimestre).

Syntaxe SQL :

SELECT product, UNPIVOT(value FOR quarter IN (Q1, Q2, Q3, Q4)) AS sales_quarter
FROM pivoted_table

Utilisation d'un Requête

Avant l'introduction de l'opérateur UNPIVOT, les utilisateurs de BigQuery pouvaient obtenir un pivotement à l'aide d'une requête imbriquée :

Syntaxe SQL :

SELECT product,
  (SELECT value FROM UNNEST(SAFE_CAST(STRUCT(NULL AS name, Q1 AS "value") AS STRUCT<name STRING, value STRING>))) AS Q1,
  (SELECT value FROM UNNEST(SAFE_CAST(STRUCT(NULL AS name, Q2 AS "value") AS STRUCT<name STRING, value STRING>))) AS Q2,
  (SELECT value FROM UNNEST(SAFE_CAST(STRUCT(NULL AS name, Q3 AS "value") AS STRUCT<name STRING, value STRING>))) AS Q3,
  (SELECT value FROM UNNEST(SAFE_CAST(STRUCT(NULL AS name, Q4 AS "value") AS STRUCT<name STRING, value STRING>))) AS Q4
FROM pivoted_table

Exemple de conversion de données

L'exemple suivant convertir le tableau croisé dynamique :

product | Q1 | Q2 | Q3 | Q4
-------------------------------
Kale    | 51 | 23 | 45 | 3
Apple   | 77 | 0  | 25 | 2

En tableau non pivoté :

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn