首页 > 数据库 > mysql教程 > 如何使用 GROUP BY 在 DB2 中将行转换为列?

如何使用 GROUP BY 在 DB2 中将行转换为列?

Mary-Kate Olsen
发布: 2025-01-05 10:32:41
原创
715 人浏览过

How to Pivot Rows into Columns in DB2 Using GROUP BY?

在 DB2 中进行透视

这个问题围绕 DB2 表中的行转置为列。提供的数据由 ItemID、Item 和 Value 列构成。目标是将这些数据转换为转置格式,其中 Meeting、Advise 和 NoAdvise 的值排列为列,而 ItemID 用作行标识符。

执行此透视的一种方法是使用 GROUP BY 子句和多个 MAX() 表达式。通过使用 MAX() 并在 CASE 语句中指定每个项目类型的条件,可以检索相应的值。例如:

SELECT 
  ItemID,
  MAX(CASE WHEN Item = 'Meeting'  THEN Value END) AS Meeting,
  MAX(CASE WHEN Item = 'Advise'   THEN Value END) AS Advise,
  MAX(CASE WHEN Item = 'NoAdvise' THEN Value END) AS NoAdvise
FROM table_name
GROUP BY ItemID
登录后复制

此查询生成所需的转置格式,其中 ItemID 用作主键,Meeting、Advise 和 NoAdvise 成为列标题。 GROUP BY 子句确保数据按 ItemID 分组,为每个项目提供不同的行。

或者,可以通过使用多个相关子查询来实现相同的结果,如本论坛中当前接受的答案所建议的那样。然而,值得注意的是,与更高效的 GROUP BY 解决方案相比,子查询方法可能会遇到性能问题,尤其是对于较大的数据集。

以上是如何使用 GROUP BY 在 DB2 中将行转换为列?的详细内容。更多信息请关注PHP中文网其他相关文章!

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