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

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

Mary-Kate Olsen
Mary-Kate Olsen原创
2025-01-05 10:32:41753浏览

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn