首页 > 数据库 > mysql教程 > 如何使用 SQL 将多列(组织和位置)数据转换为更广泛的格式?

如何使用 SQL 将多列(组织和位置)数据转换为更广泛的格式?

Patricia Arquette
发布: 2025-01-03 00:53:41
原创
613 人浏览过

How to Pivot Data with Multiple Columns (org and position) into a Wider Format Using SQL?

使用多列透视数据

透视查询对于将数据从高而窄的格式重新排列为宽而表格的格式至关重要。在这种特定情况下,您需要将具有两列(即 org 和position)的透视格式表示的数据转换为更宽的格式,每种语言(en、fi 和 sv)具有单独的列。

As您提到,使用 CONNECT BY 命令进行数据透视查询可能很有用。然而,这里有一个使用 PIVOT 运算符的更简单的方法:

SELECT  user_id,
        MAX(CASE WHEN lang = 'en' THEN org END) AS org_en,
        MAX(CASE WHEN lang = 'en' THEN position END) AS position_en,
        MAX(CASE WHEN lang = 'fi' THEN org END) AS org_fi,
        MAX(CASE WHEN lang = 'fi' THEN position END) AS position_fi,
        MAX(CASE WHEN lang = 'sv' THEN org END) AS org_sv,
        MAX(CASE WHEN lang = 'sv' THEN position END) AS position_sv
FROM    source
GROUP BY user_id
登录后复制

MAX() 函数用于检索与每个用户 ID 和语言组合关联的最新值。或者,您可以根据您的具体要求使用 SUM() 等聚合函数。

此查询将生成所需的输出:

user_id org_fi position_fi org_en position_en org_sv position_sv
1001 USD Bossa USE Boss NULL NULL
1002 NULL NULL NULL NULL GWR Dim
1003 GGA DCS NULL NULL GCA DDD

请记住调整 MAX() 函数以及根据您的实际数据和需求的CASE表达式。通过这种方法,您可以使用多列有效地转换数据,从而可以灵活地以更适合您的分析和演示需求的格式来表示数据。

以上是如何使用 SQL 将多列(组织和位置)数据转换为更广泛的格式?的详细内容。更多信息请关注PHP中文网其他相关文章!

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