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
Libérer: 2024-12-23 03:19:09
original
948 Les gens l'ont consulté

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal