Maison >base de données >tutoriel mysql >Comment créer des tables de pivot dans MySQL en utilisant des instructions de cas et en groupe?
Les tableaux croisés dynamiques sont inestimables pour la synthèse des données, vous permettant d'agréger des données sur plusieurs dimensions. Ce guide montre comment créer des tableaux croisés dynamiques dans MySQL à l'aide des instructions CASE
et GROUP BY
.
Exemple illustratif :
Considérez cet exemple de table MySQL :
company_name | action | pagecount |
---|---|---|
Company A | 3 | |
Company A | 2 | |
Company A | 3 | |
Company B | NULL | |
Company B | 2 | |
Company B | 2 | |
Company B | 1 | |
Company A | 3 |
La requête SQL suivante construit un tableau croisé dynamique à partir de ces données :
<code class="language-sql">SELECT P.`company_name`, COUNT(CASE WHEN P.`action` = 'EMAIL' THEN 1 ELSE NULL END) AS 'EMAIL', COUNT(CASE WHEN P.`action` = 'PRINT' AND P.`pagecount` = '1' THEN P.`pagecount` ELSE NULL END) AS 'PRINT 1 pages', COUNT(CASE WHEN P.`action` = 'PRINT' AND P.`pagecount` = '2' THEN P.`pagecount` ELSE NULL END) AS 'PRINT 2 pages', COUNT(CASE WHEN P.`action` = 'PRINT' AND P.`pagecount` = '3' THEN P.`pagecount` ELSE NULL END) AS 'PRINT 3 pages' FROM test_pivot P GROUP BY P.`company_name`;</code>
Cette requête génère le tableau croisé dynamique suivant :
company_name | PRINT 1 pages | PRINT 2 pages | PRINT 3 pages | |
---|---|---|---|---|
CompanyA | 0 | 0 | 1 | 3 |
CompanyB | 1 | 1 | 2 | 0 |
Apprentissage complémentaire :
Pour une compréhension plus approfondie des tableaux croisés dynamiques MySQL, explorez ces ressources :
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!