连接行,基于公共列Oracle

时间:2016-10-03 01:17:31

标签: sql oracle concatenation

我必须连接以下数据

import pandas as pd

df = pd.DataFrame.from_csv('data.csv',index_col=False)


while True:
     print (df)
     print ('Select X-Axis')
     xaxis = input()
     print ('Select Y-Axis')
     yaxis = input()
     break
 
df.plot(x= xaxis, y= yaxis)

预期的输出

a b c  
1 Text 22-03-2015
1 Text1 22-03-2015
2 Text2 24-05-2015
3 Text5 29-05-2015
1 Text11 23-03-2015

尝试了wm_concat函数并且它可以工作,但是我无法从数据中删除重复项并且使用 LISTAGG 会导致错误

  

“ora-01489字符串连接的结果在oracle中太长了”

错误,因为列b包含大于4000个字符的值 除了这两个功能之外还有其他选择吗?

1 个答案:

答案 0 :(得分:1)

如果您是Oracle 11g+

,则可以使用LISTAGG功能
SELECT a, LISTAGG(b, ' ') WITHIN GROUP (ORDER BY b) as b, c
FROM   yourtable
GROUP BY a,c;