MySQL 中的行到列转换:动态数据的数据透视表
数据透视表是一种将数据从面向行转换的便捷方法格式转换为面向列的格式,以便更轻松地进行分析和报告。在 MySQL 中,这种转换可以通过专门的技术来实现。
考虑以下示例数据:
ID | Type | Degignation | |
---|---|---|---|
1000000000 | 202 | [email protected] | Entrepreneur |
1000000000 | 234 | [email protected] | Engineering,Development |
1000000000 | 239 | [email protected] | CTO |
要透视此数据,我们使用以下查询:
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 值动态创建列。 MAX 函数用于聚合每个 ID 和电子邮件组合的 Degignation 值。
需要注意的是,为了使此查询有效工作,您必须事先知道所有可能的 Type 值。 MySQL不允许根据运行时发现的数据动态添加列;在查询准备期间,列定义必须是静态的。
此技术允许您将面向行的数据转换为面向列的格式,通过提供更直观的数据呈现来促进分析和报告任务。
以上是如何使用动态数据在 MySQL 中执行行到列转换(透视)?的详细内容。更多信息请关注PHP中文网其他相关文章!