首页 >数据库 >mysql教程 >如何使用 CASE 和聚合函数将 MySQL 中的行转换为列?

如何使用 CASE 和聚合函数将 MySQL 中的行转换为列?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-03 02:28:11802浏览

How to Pivot Rows into Columns in MySQL Using CASE and Aggregate Functions?

如何在 MySQL 中将行转换为列

数据透视表是一种常见的数据转换,用于将数据重新排列为更易于处理的格式阅读并分析。在这种情况下,我们希望将包含多行的结果集转换为一个表,其中每个不同类型值的列和每个唯一 ID 和电子邮件组合的行。

要在 MySQL 中实现此目的,我们可以使用以下查询:

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

此查询使用 CASE 语句根据每行的 Type 值有条件地设置 Degignation 值。然后,MAX() 聚合函数返回每组 ID 和电子邮件中每种类型的最大 Degignation 值。

注意: 将占位符表名称 (mytable) 替换为包含您的数据的实际表名称。此外,您需要提前知道所有不同的 Type 值,因为 SQL 不允许在查询执行期间动态添加列。

以上是如何使用 CASE 和聚合函数将 MySQL 中的行转换为列?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn