枢轴表对于数据摘要非常宝贵,使您可以跨多个维度汇总数据。 本指南演示了如何使用CASE
语句在mySQL中创建枢轴表
GROUP BY
考虑此示例mysql表:
以下SQL查询从此数据构建一个枢轴表:
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 |
此查询得出以下枢轴表:
<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>
company_name | PRINT 1 pages | PRINT 2 pages | PRINT 3 pages | |
---|---|---|---|---|
CompanyA | 0 | 0 | 1 | 3 |
CompanyB | 1 | 1 | 2 | 0 |
为了更深入地了解MySQL枢轴表,请探索以下资源:
中的枢纽查询
以上是如何使用 CASE 语句和 GROUP BY 在 MySQL 中创建数据透视表?的详细内容。更多信息请关注PHP中文网其他相关文章!