Maison  >  Article  >  base de données  >  Comment utiliser unpivot dans Oracle

Comment utiliser unpivot dans Oracle

下次还敢
下次还敢original
2024-04-30 06:27:20555parcourir

L'opérateur UNPIVOT convertit les données de ligne dans Oracle en données de colonne pour une analyse et une interrogation plus faciles. Il convertit un ensemble de données contenant plusieurs lignes et colonnes en un nouvel ensemble de données avec une colonne ID représentant la ligne d'origine et une colonne de valeurs contenant les valeurs de la colonne d'origine. La syntaxe UNPIVOT est : SELECT * FROM UNPIVOT(table_name) AS unpivoted_table[WHERE pivot_condition]. Les avantages incluent des requêtes simplifiées, des performances améliorées et la prise en charge du pivotement. Par exemple, vous pouvez convertir les données du trimestre de vente en colonnes pour analyser facilement les ventes par produit et par trimestre.

Comment utiliser unpivot dans Oracle

Utilisation d'UNPIVOT dans Oracle

Qu'est-ce qu'UNPIVOT ?

UNPIVOT est un opérateur Oracle utilisé pour convertir les données de ligne en données de colonne. Il transforme un ensemble de données multi-lignes et multi-colonnes en un nouvel ensemble de données avec deux colonnes : une colonne ID (représentant les lignes d'origine) et une colonne de valeur (contenant les valeurs des colonnes d'origine).

Utilisation UNPIVOT

La syntaxe UNPIVOT est la suivante :

<code>SELECT * FROM UNPIVOT(table_name) [AS unpivoted_table]
[FOR column_name IN (column_list)]
[WHERE pivot_condition]</code>

où :

  • table_name est le nom de l'ensemble de données à convertir. table_name 是要转换的数据集的名称。
  • column_name 是要转换为列的原始列的名称。
  • column_list 是要转换为列的原始列的列表。
  • pivot_condition 是可选的条件,用于过滤要转换为列的数据。

示例

假设有一个名为 sales 的数据集,其中包含以下列:

  • product_id
  • product_name
  • sales_q1
  • sales_q2
  • sales_q3
  • sales_q4
  • column_name est le nom de la colonne d'origine à convertir en colonne.

column_list est la liste des colonnes brutes à convertir en colonnes.

pivot_condition est une condition facultative utilisée pour filtrer les données à convertir en colonnes.

Exempleproduct_idproduct_namesales_q1sales_q2sales_q3sales_q4
<code>SELECT * FROM UNPIVOT(sales) AS unpivoted_sales
FOR sales_quarter IN (sales_q1, sales_q2, sales_q3, sales_q4)</code>
L'ensemble de données résultant ressemblera à ceci : product_idproduct_namesales_ quartersales_value1 Produit AQ1100 1Produit AQ22001Produit AQ33001 Produit AQ44002 Produit BQ15002Produit BQ2600
Supposons qu'il existe un ensemble de données appelé sales avec les colonnes suivantes :
Pour convertir les données du trimestre de vente pour les colonnes, vous Vous pouvez utiliser la requête UNPIVOT suivante :

2

Produit B

    Q3
  • 700
  • 2
🎜Produit B🎜 🎜Q4🎜🎜800🎜🎜🎜🎜🎜🎜 Avantages d'UNPIVOT🎜🎜🎜L'utilisation d'UNPIVOT présente les avantages suivants : 🎜🎜🎜Convertissez les données de ligne en données de colonne plus faciles à analyser. 🎜🎜Simplifiez la conception des requêtes et des rapports. 🎜🎜Améliorez les performances de l'agrégation des données et des tableaux croisés dynamiques. 🎜🎜

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