日期:2014-05-17  浏览次数:21186 次

使用wm_concat()遇到的问题,多个参数的分组和排序
现在有一个表的数据是这样的

 sid||fid
  1 0
  1 1
  1 2
  1 3
  1 4
  1 5
  2 0
  2 1
  2 2
  2 3 

使用wm_concat(sid||'-'||fid)
显示出来的结果是
1-0,1-5,1-4,1-3,1-2,1-1
2-0,2-3,2-2,2-1


但是我希望查询的数据是 根据sid分组 根据fid排序
1-0,1-1,1-2……这样
网上看到有说用over(partition by xx order by xx)来做,
但是我这个是根据两列做的拼装,必须加上group by sid,fid
查询出来的结果变成了这样

1-0,
1-0,1-1
1-0,1-1,1-2 ……

不知道我这样的功能需要什么方法来做?麻烦高人提点 谢谢

------解决方案--------------------
和group by 有什么关系?不就是变成阶梯式了吗

SQL code
over(partition by sid,fid order by fid rows between unbounded preceding and unbounded following)

------解决方案--------------------
先按fid排序再使用wm_concat(sid||'-'||fid)