MySQL 中的数据透视表转换
MySQL 中有一个结果集,其中多行共享相同 ID 但类型和名称不同,并且您希望将其转换为数据透视表格式,其中类型变为列,名称变为这些列中的行值。以下是实现此目的的方法:
该解决方案涉及数据透视,这称为创建数据透视表。该过程涉及:
准备查询:
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
解释查询:
注意:
需要注意的是,查询假设您提前知道不同的 Type 值。在 SQL 中,列定义必须在查询准备期间固定。如果您有一组不同的 Type 值,则需要使用动态查询或存储过程在运行时生成适当的查询。
以上是如何使用条件聚合将 MySQL 结果集转换为数据透视表?的详细内容。更多信息请关注PHP中文网其他相关文章!