Explication détaillée de la conversion de ligne en colonne MySQL
Dans MySQL, la conversion des lignes d'un tableau en colonnes nécessite des étapes.
Étape 1 : Déterminer les valeurs X et Y
Tout d’abord, identifiez les colonnes qui composent les valeurs X (en-têtes de colonne) et les valeurs Y (lignes) du tableau croisé dynamique. Dans cet exemple, hostid sera la valeur Y et itemname sera la valeur X.
Étape 2 : Ajouter des colonnes supplémentaires
Ajoutez une nouvelle colonne pour chaque valeur X contenant la valeur correspondante. Par exemple, pour les valeurs X A, B et C, utilisez l'instruction CASE pour ajouter les colonnes A, B et C comme suit :
<code class="language-sql">SELECT history.*, CASE WHEN itemname = "A" THEN itemvalue END AS A, CASE WHEN itemname = "B" THEN itemvalue END AS B, CASE WHEN itemname = "C" THEN itemvalue END AS C FROM history;</code>
Étape 3 : Regroupement et agrégation
Regroupez la table étendue par la colonne de valeur Y (hostid dans ce cas) et agrégez la nouvelle colonne à l'aide d'une fonction d'agrégation telle que SUM.
<code class="language-sql">SELECT hostid, SUM(A) AS A, SUM(B) AS B, SUM(C) AS C FROM history_extended GROUP BY hostid;</code>
Étape 4 : Embellir (facultatif)
Si vous le souhaitez, toute valeur NULL peut être remplacée par une valeur neutre (par exemple 0) pour rendre le tableau plus lisible :
<code class="language-sql">SELECT hostid, COALESCE(A, 0) AS A, COALESCE(B, 0) AS B, COALESCE(C, 0) AS C FROM history_itemvalue_pivot;</code>
Autres notes
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!