谁能帮我解决下面的sql问题?
输入 :-TABLENAME :- T1
ALGO|QTR|VOL
A Q1 1
A Q2 2
A Q3 3
B Q1 4
B Q2 5
B Q3 6
C Q1 7
C Q2 8
C Q3 9
输出:
ALGO Q1 Q2 Q3
A 1 2 3
B 4 5 6
C 7 8 9
在此处输入图像描述 我尝试在 sql 中执行透视,但给出语法错误。任何人都可以帮助我吗?
INPUT :-TABLENAME :- T1
ALGO|QTR|VOL
A Q1 1
A Q2 2
A Q3 3
B Q1 4
B Q2 5
B Q3 6
C Q1 7
C Q2 8
C Q3 9
OUTPUT:
ALGO Q1 Q2 Q3
A 1 2 3
B 4 5 6
C 7 8 9
enter image description here
I tried pivot in sql but giving syntax error. Can any one help me for the same ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以执行手动/静态数据透视,如下所示:
如果您需要动态数据透视,则可以使用两个 SQL 选择:第一个可以检索可能的列名称;第二个可以检索可能的列名称。使用它,您可以组装第二个查询(使用与此答案中所示相同的形式),该查询将动态生成列。
You can do a manual/static pivot, as in:
If you need the pivot to be dynamic, then you can use two SQL selects: the first one can retrieve the possible column names; with it you can assemble a second query (using the same form as shown in this answer) that will produce columns dynamically.
我喜欢 Imapaler 的解决方案,它可能比我的更好。
下面是一种可能更昂贵的替代方案,但也展示了一种不同的方法。但不能保证它会表现出更差的性能。数据库系统常常让我感到惊讶。
注意:有些人绝对喜欢连接运算符。将上面的内容转换为使用连接运算符会很容易。逻辑保持不变。
I like The Imapaler's solution and it is likely better than mine.
Below an alternative that might be a lot more expensive, but also shows a different approach. It is not guaranteed that it will show a worse performance though. Database systems often manage to surprise me.
Note: some people are absolutely in love with the join operator. It'll be easy to convert the above to use the join operator. The logic remains the same.