Maison > base de données > tutoriel mysql > Comment puis-je faire pivoter des données mensuelles plates dans Oracle SQL pour une analyse plus facile ?

Comment puis-je faire pivoter des données mensuelles plates dans Oracle SQL pour une analyse plus facile ?

Mary-Kate Olsen
Libérer: 2025-01-23 07:37:10
original
686 Les gens l'ont consulté

How Can I Pivot Flat Monthly Data in Oracle SQL for Easier Analysis?

Reconstruction des données du tableau croisé dynamique Oracle SQL

Problème : Convertir des données tabulaires plates pour une analyse pivot

Supposons que vous ayez un tableau contenant des données numériques organisées par mois :

<code>MONTH | VALUE
-------|------
1      | 100
2      | 200
3      | 300
...</code>
Copier après la connexion

Le but est de convertir ces données dans un format pivot pour visualiser plus visuellement les valeurs mensuelles :

<code>MONTH_JAN | MONTH_FEB | MONTH_MAR | ...
---------|---------|---------|
100       | 200       | 300       | ...</code>
Copier après la connexion
Copier après la connexion

Oracle 11g et supérieur : opérateur PIVOT

Oracle 11g et versions ultérieures introduisent l'opérateur PIVOT, qui permet de faire pivoter facilement les données. La syntaxe est la suivante :

<code>SELECT *
FROM table_name
PIVOT (
  aggregate_function(column_name)
  FOR (pivot_column)
  IN (list_of_values)
);</code>
Copier après la connexion

Exemple d'utilisation de l'opérateur PIVOT

Considérez les exemples de données suivants :

<code>CREATE TABLE tq84_pivot (
  month NUMBER,
  value NUMBER
);

INSERT INTO tq84_pivot VALUES (1, 100), (2, 200), (3, 300), (4, 400), (5, 500), (6, 600);

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,
                  7 AS month_jul,
                  8 AS month_aug,
                  9 AS month_sep,
                 10 AS month_oct,
                 11 AS month_nov,
                 12 AS month_dec)
);</code>
Copier après la connexion

Le résultat est comme prévu :

<code>MONTH_JAN | MONTH_FEB | MONTH_MAR | ...
---------|---------|---------|
100       | 200       | 300       | ...</code>
Copier après la connexion
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