Maison > base de données > tutoriel mysql > Comment faire pivoter une colonne SQL à l'aide de CASE WHEN pour transformer les données de ligne en colonnes ?

Comment faire pivoter une colonne SQL à l'aide de CASE WHEN pour transformer les données de ligne en colonnes ?

Mary-Kate Olsen
Libérer: 2025-01-11 16:02:46
original
878 Les gens l'ont consulté

How to Pivot a SQL Column Using CASE WHEN to Transform Row Data into Columns?

Utilisation de CASE WHEN pour le pivotement des colonnes SQL

Besoin de transformer vos données SQL de lignes en colonnes ? L'instruction CASE WHEN offre une solution simple pour le pivotement, en particulier lorsqu'il s'agit de tableaux contenant des valeurs en double dans une colonne qui doivent être agrégées.

Illustrons avec un exemple. Imaginez ce tableau :

<code class="language-sql">Bank:
name  val   amount
John   1     2000
Peter  1     1999
Peter  2     1854
John   2     1888</code>
Copier après la connexion

Notre objectif : restructurer cela en un tableau où les valeurs "val" uniques deviennent des colonnes, et chaque "nom" unique est une ligne. Le résultat souhaité :

<code class="language-sql">name  amountVal1 amountVal2  
John    2000        1888   
Peter   1999        1854    </code>
Copier après la connexion

Voici comment réaliser ce pivot en utilisant SUM() et CASE WHEN :

<code class="language-sql">SELECT 
  name,
  SUM(CASE WHEN val = 1 THEN amount ELSE 0 END) AS amountVal1,
  SUM(CASE WHEN val = 2 THEN amount ELSE 0 END) AS amountVal2
FROM bank
GROUP BY name;</code>
Copier après la connexion

Cette requête utilise SUM() pour agréger les valeurs amount pour chaque combinaison unique name et val. L'instruction CASE WHEN vérifie si val vaut 1 ou 2, attribuant le amount correspondant en conséquence. GROUP BY name garantit une ligne par nom unique. Le résultat ? Les colonnes amountVal1 et amountVal2 représentent parfaitement les données pivotées. Cette méthode est efficace pour un nombre connu et limité de val valeurs. Pour un nombre dynamique de valeurs, pensez à utiliser PIVOT ou d'autres techniques plus avancées.

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