Remodeler la forme dans le format de colonne
Challenge
: Recherchez les données de la table MySQL dans une formule de forme de perspective et convertissez la ligne en colonne.Question :
Étant donné un tableau contenant un hostide, un itemname et la colonne ItemValue, veuillez appuyer sur les résultats comme indiqué ci-dessous:
Solution:
hostid | A | B | C |
---|---|---|---|
1 | 10 | 3 | 0 |
2 | 9 | 0 | 40 |
ok fournira des colonnes qui fourniront des valeurs y et des valeurs x (itemname).
Étape 2: étendez le tableau de base
Créer des colonnes supplémentaires pour chaque valeur X unique.
Étape 3: groupement et agrégation
groupId (hostid) et agréger la table d'extension.
<code class="language-sql">CREATE VIEW history_extended AS 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>
Remplacez la valeur nul à zéro pour obtenir une apparence plus claire.
Précautions et restrictions
<code class="language-sql">CREATE VIEW history_itemvalue_pivot AS SELECT hostid, SUM(A) AS A, SUM(B) AS B, SUM(C) AS C FROM history_extended GROUP BY hostid;</code>
Les valeurs utilisées dans la colonne d'extension et la valeur par défaut des valeurs manquantes peuvent être personnalisées.
Vous pouvez ajuster la fonction de polymérisation (par exemple, max).
<code class="language-sql">CREATE VIEW history_itemvalue_pivot_pretty AS SELECT hostid, COALESCE(A, 0) AS A, COALESCE(B, 0) AS B, COALESCE(C, 0) AS C FROM history_itemvalue_pivot;</code>
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!