首页 > 数据库 > mysql教程 > 如何使用 CASE 语句和 GROUP BY 在 MySQL 中创建数据透视表?

如何使用 CASE 语句和 GROUP BY 在 MySQL 中创建数据透视表?

Susan Sarandon
发布: 2025-01-25 20:35:09
原创
943 人浏览过

How to Create Pivot Tables in MySQL Using CASE Statements and GROUP BY?

在mySQL中生成枢轴表:指南

>

枢轴表对于数据摘要非常宝贵,使您可以跨多个维度汇总数据。 本指南演示了如何使用CASE语句在mySQL中创建枢轴表 GROUP BY

说明性示例:

考虑此示例mysql表:

以下SQL查询从此数据构建一个枢轴表:>
company_name action pagecount
Company A PRINT 3
Company A PRINT 2
Company A PRINT 3
Company B EMAIL NULL
Company B PRINT 2
Company B PRINT 2
Company B PRINT 1
Company A PRINT 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 EMAIL PRINT 1 pages PRINT 2 pages PRINT 3 pages
CompanyA 0 0 1 3
CompanyB 1 1 2 0

为了更深入地了解MySQL枢轴表,请探索以下资源:>

艺术软件:sql

中的枢纽查询
    >
  • 另一个mysql dba:mysql 中的枢轴表示例
  • codeproject:带有mySQL 的交叉截图(枢轴表)
  • 编码瞄准器:MySQL 中的枢轴表

以上是如何使用 CASE 语句和 GROUP BY 在 MySQL 中创建数据透视表?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板