如何在 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中文网其他相关文章!