Maison >base de données >tutoriel mysql >Comment faire pivoter correctement les colonnes dans SQL à l'aide de CASE WHEN et GROUP BY ?
Pour faire pivoter une colonne d'un tableau en plusieurs colonnes en fonction de conditions spécifiques, les requêtes SQL peuvent utiliser des expressions CASE WHEN. Cependant, lors de la mise en œuvre de cette méthode, les utilisateurs peuvent rencontrer des résultats incorrects en raison d'un regroupement manquant.
Pour résoudre ce problème, une requête modifiée incluant la fonction d'agrégation SUM() et le regroupement correct est fournie ci-dessous :
<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>
Cette requête améliorée produira le résultat souhaité :
name | amountVal1 | amountVal2 |
---|---|---|
John | 2000 | 1888 |
Peter | 1999 | 1854 |
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!