Problème:
Vous avez un tableau contenant des données avec plusieurs dimensions, et vous voulez créer un tableau croisé (Tableau Pivot) sans savoir le nombre de dimensions Upfront.
Solution:
Le nombre de colonnes pour une requête de pivot doit être défini au moment de la préparation de la requête. Pour réaliser une touche croisée dynamique, vous avez deux options qui impliquent d'écrire du code d'application:
Option 1: requêtes des valeurs distinctes et construire dynamique sql
requêtes les données telles quelles. Key. remplit le tableau avec des sous-réseaux contenant la deuxième valeur de dimension (par exemple, "Way") comme les clés et les valeurs de temps comme valeurs.
foreach ($pdo->query("SELECT DISTINCT `way` FROM `MyTable`") as $row) {
$way = (int) $row["way"];
$way_array[] = "MAX(IF(`way`=$way, `time`)) AS way_$way";
}
$pivotsql = "SELECT stop, " . join(", ", $way_array) .
"FROM `MyTable` GROUP BY `stop`";
Exemple:
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3