Utilisez l'instruction CASE WHEN de SQL pour faire pivoter les colonnes
Dans les bases de données relationnelles, afin d'analyser ou d'afficher des données, il est souvent nécessaire de remodeler les données dans différents formats. Une transformation courante est le pivotement, qui combine plusieurs lignes de données en une seule ligne.
Question :
Considérons un tableau nommé « Banque » avec les colonnes « nom », « val » et « montant » :
name | val | amount |
---|---|---|
John | 1 | 2000 |
Peter | 1 | 1999 |
Peter | 2 | 1854 |
John | 2 | 1888 |
Le but est de faire pivoter la colonne "val" et de créer deux nouvelles colonnes nommées "amountVal1" et "amountVal2", représentant les valeurs "amount" avec des valeurs "val" de "1" et "2". respectivement. Le résultat souhaité ressemble à ceci :
name | amountVal1 | amountVal2 |
---|---|---|
John | 2000 | 1888 |
Peter | 1999 | 1854 |
Solution :
Afin d'effectuer cette conversion, les expressions CASE WHEN peuvent être utilisées avec les fonctions d'agrégation. La requête SQL suivante obtient les résultats attendus :
<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>
Dans cette requête :
En utilisant cette requête, vous pouvez réussir à faire pivoter les données dans la table "Banque", en créant les colonnes requises "amountVal1" et "amountVal2" qui contiennent des valeurs "val" de "1" et "2" respectivement " valeur "montant".
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!