首页 > 数据库 > mysql教程 > 如何使用条件聚合将 MySQL 结果集转换为数据透视表?

如何使用条件聚合将 MySQL 结果集转换为数据透视表?

Patricia Arquette
发布: 2024-12-03 19:44:14
原创
165 人浏览过

How to Transform a MySQL Result Set into a Pivot Table Using Conditional Aggregation?

MySQL 中的数据透视表转换

MySQL 中有一个结果集,其中多行共享相同 ID 但类型和名称不同,并且您希望将其转换为数据透视表格式,其中类型变为列,名称变为这些列中的行值。以下是实现此目的的方法:

该解决方案涉及数据透视,这称为创建数据透视表。该过程涉及:

  1. 准备查询:

    SELECT ID, 
    MAX(CASE Type WHEN 202 THEN Degignation END) AS `202`
    MAX(CASE Type WHEN 234 THEN Degignation END) AS `234`
    MAX(CASE Type WHEN 239 THEN Degignation END) AS `239`
    Email
    FROM mytable
    GROUP BY ID, Email
    登录后复制
  2. 解释查询:

    • 查询使用使用 CASE 表达式进行条件聚合,将名称分配给相应的类型列 (202, 234, 239)。
    • MAX 函数聚合每组 ID 和电子邮件内的名称。
    • GROUP BY 子句根据 ID 和 Email 组合结果来创建数据透视表格式。

注意:

需要注意的是,查询假设您提前知道不同的 Type 值。在 SQL 中,列定义必须在查询准备期间固定。如果您有一组不同的 Type 值,则需要使用动态查询或存储过程在运行时生成适当的查询。

以上是如何使用条件聚合将 MySQL 结果集转换为数据透视表?的详细内容。更多信息请关注PHP中文网其他相关文章!

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