Maison >base de données >tutoriel mysql >Comment utiliser l'opérateur PIVOT d'Oracle SQL pour la transformation des données ?

Comment utiliser l'opérateur PIVOT d'Oracle SQL pour la transformation des données ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-23 07:26:09866parcourir

How to Use Oracle SQL's PIVOT Operator for Data Transformation?

Requête pivot dans Oracle SQL

Les requêtes pivot vous permettent de convertir les données du format de colonne traditionnel au format de ligne, ce qui facilite l'analyse et la comparaison des données dans différentes catégories.

Créer une requête pivot

Pour créer des requêtes pivot dans Oracle SQL, vous pouvez utiliser l'opérateur PIVOT. Cet opérateur vous oblige à spécifier les données que vous souhaitez faire pivoter, une fonction d'agrégation (telle que SUM, COUNT ou AVG) et les valeurs de catégorie autour desquelles vous souhaitez pivoter.

Exemples de données et de requêtes

Considérez l'exemple de données suivant de la table tq84_pivot :

<code>MONTH | VALUE
-------+-----------
1      | 100
2      | 200
3      | 300
4      | 400
5      | 500
6      | 600</code>

Pour faire pivoter vos données autour des catégories mensuelles et additionner la colonne VALEUR, vous pouvez utiliser la requête suivante :

<code class="language-sql">SELECT
  *
FROM
  tq84_pivot
PIVOT (
  SUM(VALUE) AS sum_value
  FOR MONTH IN (1 AS MONTH_JAN, 2 AS MONTH_FEB, 3 AS MONTH_MAR, 4 AS MONTH_APR, 5 AS MONTH_MAI, 6 AS MONTH_JUN)
);</code>

Résultats de sortie

Cette requête renverra le résultat suivant :

<code>MONTH_JAN | MONTH_FEB | MONTH_MAR | MONTH_APR | MONTH_MAI | MONTH_JUN
--------+--------+--------+--------+--------+--------
100      | 200      | 300      | 400      | 500      | 600</code>

Oracle 11g et supérieur

Oracle 11g introduit l'opérateur PIVOT, qui vous permet de créer des requêtes pivot de manière plus concise. Pour les mêmes exemples de données, la requête peut être simplifiée à :

<code class="language-sql">SELECT
  MONTH_JAN, MONTH_FEB, MONTH_MAR, MONTH_APR, MONTH_MAI, MONTH_JUN
FROM
  tq84_pivot
PIVOT (
  SUM(VALUE)
  FOR MONTH IN (1 AS MONTH_JAN, 2 AS MONTH_FEB, 3 AS MONTH_MAR, 4 AS MONTH_APR, 5 AS MONTH_MAI, 6 AS MONTH_JUN)
);</code>

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