首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将行动态转换为列的Mysql查询

将行动态转换为列的Mysql查询
EN

Stack Overflow用户
提问于 2013-02-12 22:00:02
回答 1查看 74.8K关注 0票数 36

MySQL可以将列转换为行,根据行的需要动态添加任意多的列。我想我的问题可能与数据透视表有关,但我不确定,除了给出下面的例子之外,我不知道该如何组织这个问题。

给出两个表A和B,它们看起来像

表A

代码语言:javascript
复制
+--+-----+----+
|id|order|data|
+--+-----+----+
|1 |1    |P   |
+--+-----+----+
|2 |2    |Q   |
+--+-----+----+
|2 |1    |R   |
+--+-----+----+
|1 |2    |S   |
+--+-----+----+

我喜欢编写如下所示的查询:

结果表

代码语言:javascript
复制
+--+-----+-----+
|id|data1|data2|
+--+-----+-----+
|1 |P    |S    |
+--+-----+-----+
|2 |R    |Q    |
+--+-----+-----+

基本上,我希望将表B中的每一行转换为结果表中的一列。如果在表B中为id=1添加了一个新条目,那么我希望结果表自动扩展一列,以容纳这个额外的数据点。

EN

回答 1

Stack Overflow用户

发布于 2013-02-12 22:02:35

您需要使用MAXGROUP BY来模拟枢轴:

代码语言:javascript
复制
SELECT Id,
   MAX(CASE WHEN Order = 1 THEN data END) data1,
   MAX(CASE WHEN Order = 2 THEN data END) data2
FROM TableA
GROUP BY Id

这是SQL Fiddle

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14834290

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档