Maison >base de données >tutoriel mysql >Comment faire pivoter les données de ligne en colonnes à l'aide de l'opérateur PIVOT d'Oracle SQL ?

Comment faire pivoter les données de ligne en colonnes à l'aide de l'opérateur PIVOT d'Oracle SQL ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-23 07:41:10308parcourir

How to Pivot Row Data into Columns Using Oracle SQL's PIVOT Operator?

Requête pivot Oracle SQL

Le but de cette requête est de convertir les données organisées en lignes en colonnes, où chaque colonne représente une valeur spécifique dans la ligne d'entrée.

Considérez la forme suivante :

月份 数值
1 100
2 200
3 300
4 400
5 500
6 600

Notre objectif est de faire pivoter les données pour que le tableau de sortie ressemble à ceci :

一月 二月 三月 四月 五月 六月
100 200 300 400 500 600

Oracle 11g et supérieur

À partir d'Oracle 11g, l'opérateur PIVOT fournit un moyen simple de procéder :

<code class="language-sql">CREATE TABLE tq84_pivot (
  month NUMBER,
  value NUMBER
);

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

-- 插入额外的行以进行演示
INSERT INTO tq84_pivot VALUES(1, 400);
INSERT INTO tq84_pivot VALUES(2, 350);
INSERT INTO tq84_pivot VALUES(4, 150);

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>

Cette requête utilise l'opérateur PIVOT avec une clause 'FOR' pour spécifier la colonne pivot et les valeurs associées. En regroupant les données par colonne « mois » et en agrégeant la colonne « valeur » à l'aide de SUM(), nous obtenons le résultat souhaité où chaque mois a sa valeur correspondante.

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