当前位置: 首页 > 面试题库 >

MySQL将多行转换为单行中的列

郦祺
2023-03-14
问题内容

我有一个带有列的详细信息表:

  • user_id int
  • 代码int
  • 值int

我想建立一个汇总表,如下所示:

  • user_id int
  • valueA int
  • valueB int

在详细信息表中,valueA对应于说代码5,而valueB对应于说代码6,所以我正在寻找类似的东西:

插入摘要(user_id,valueA,valueB)VALUES(从详细信息中选择???);

当然,问题是我正在查看“详细信息”表中的多行以填充“摘要”表中的一行。

例如,如果我有以下详细信息行:

1  5  100
1  6  200
2  5  1000
2  6  2000

我想在汇总表中添加以下内容:

1  100   200
2  1000  2000

有任何想法吗?


问题答案:

MySQL没有PIVOT / UNPIVOT语法,这使您可以结合使用GROUP BY和CASE表达式

INSERT INTO SUMMARY
  (user_id,valueA,valueB) 
  SELECT d.user_id,
         MAX(CASE WHEN d.code = 5 THEN d.value ELSE NULL END),
         MAX(CASE WHEN d.code = 6 THEN d.value ELSE NULL END),
    FROM DETAILS d
GROUP BY d.user_id


 类似资料:
  • 问题内容: 我有一个查询,该查询始终返回一行且包含 许多 列。我想将其转换为2列和多行。 原始结果: 我想要的是: 这可能吗? 编辑(澄清) 我正在寻找一种自动的方法。IE浏览器,我可以传递任何只返回1行的查询结果。 问题答案: 您正在使用Oracle 11g吗?您尝试过枢轴旋转还是取消枢轴旋转? 更多信息在这里。

  • 问题内容: 我有一张桌子: 我需要在Postgres中进行选择查询,其结果如下: 任何对链接到类似示例的帮助都将不胜感激。 问题答案: 单用加入一个表达这项工作:

  • 问题内容: 更新: 现在可以在MySQL 8中通过JSON_TABLE函数:https ://dev.mysql.com/doc/refman/8.0/en/json-table- functions.html 我喜欢MySQL 5.7中的新JSON函数,但是遇到了一个试图将JSON中的值合并到普通表结构中的块。 掌握JSON,从中处理和提取数组等都很简单。始终使用JSON_EXTRACT。但是从

  • 我是数据科学的初学者,我正在尝试使用Pandas来旋转此数据框架: 所以它变成这样:(标签应该变成列,文件路径变成行。) “标签”列是一组或一类文件路径。我想把它转换成这样一种方式,它适合这个函数:tf。Keras.preprocessing.image.flow_from_dataframe 提前感谢所有帮助我的人。

  • 问题内容: 我有一个SQL查询返回1行,其中包含多个列标题: 有没有一种方法可以将该行转换为2列,即: 这是在SQLServer 2008 r2上运行 编辑:添加一个更好的例子 来自一个简单的 类型查询。我要显示的是: 问题答案: 试试这个

  • 问题内容: MySQL是否可以将列转换为行,从而动态添加行所需的列数。我认为我的问题可能与数据透视表有关,但是我不确定,除了给出以下示例之外,我不知道如何构造此问题。 给定两个表A和B,它们看起来像 表A 我想编写一个如下查询: 结果表 基本上,我想将表B中的每一行变成结果表中的一列。如果有一个新条目被添加到表B中,id = 1,那么我希望结果表自动扩展一列以容纳这个额外的数据点。 问题答案: 您