Maison > base de données > tutoriel mysql > Comment faire pivoter correctement les colonnes dans SQL à l'aide de CASE WHEN et GROUP BY ?

Comment faire pivoter correctement les colonnes dans SQL à l'aide de CASE WHEN et GROUP BY ?

Mary-Kate Olsen
Libérer: 2025-01-11 15:56:41
original
613 Les gens l'ont consulté

How to Correctly Pivot Columns in SQL Using CASE WHEN and GROUP BY?

Pivotez les colonnes SQL à l'aide de CASE WHEN et corrigez l'instruction GROUP BY

Description du problème :

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.

Requête :

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>
Copier après la connexion

Explication :

  • La fonction SUM() doit être utilisée dans l'expression CASE WHEN pour calculer le montant total de chaque val (1 et 2) pour chaque nom.
  • La clause de nom GROUP BY regroupe les résultats par colonne de nom, garantissant que les montants pour chaque nom différent sont correctement additionnés.

Résultats attendus :

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!

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