一个有难度的分组,SQL语句(其实我不知道是不是真的有难度!)

sense 2006-03-05 07:25:24
column1 column2 column3
1 1 1
1 2 1
1 3 1
2 2 1
2 3 1
2 4 1
2 5 1
3 3 1
3 2 1
3 1 1
4 1 1
4 2 1
4 3 1
4 4 1


结果要求为
column1 column2 column3
1,3 1 1
1,3 2 1
1,3 3 1
2 2 1
2 3 1
2 4 1
2 5 1
4 1 1
4 2 1
4 3 1
4 4 1
也就是当column2完全相同时column1就以逗号隔开分组

SQL 要怎么写啊??
...全文
167 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
sense 2006-03-07
  • 打赏
  • 举报
回复
楼上的over(partition by id order by colc) cold 中的id是哪来的?有问题!

看清楚我要的分组了吗?
你那种好像是当column2相同的时候column1就以逗号分隔,
不是我要的形式
sense 2006-03-06
  • 打赏
  • 举报
回复
显示都乱了,我从新发一个
column1 column2
a 1
a 2
a 3
b 2
b 3
b 4
b 5
c 3
c 2
c 1
d 1
d 2
d 3
d 4


结果要求为
column1 column2
a,c 1
a,c 2
a,c 3
b 2
b 3
b 4
b 5
d 1
d 2
d 3
d 4
也就是以当column2的个数和值完全相同时column1就以逗号隔开分组,如:前面的column1的a和c的column2的值都是1、2、3


SQL 要怎么写啊??

sasacat 2006-03-06
  • 打赏
  • 举报
回复
select column2 ,column3, max(substr(sys_connect_by_path(column1, ','), 2)) column1 from (
select column1,column2 ,column3, colc, lead(colc) over(partition by id order by colc) cold from (
select column1,column2 ,column3, row_number() over(order by column2 ,column3) colc from tab) )
start with cold is null
connect by prior colc=cold
group by column2 ,column3;
wangzk0206 2006-03-06
  • 打赏
  • 举报
回复
确实有一定的难度....
cenlmmx 2006-03-05
  • 打赏
  • 举报
回复
用自定义聚集函数比sys_connect_by_path要好
sense 2006-03-05
  • 打赏
  • 举报
回复
其中列column3没什么用,只是显示出来
sense 2006-03-05
  • 打赏
  • 举报
回复
SQL有问题:

max(substr(sys_connect_by_path(column1, ','), 2))
column1有问题

partition by id order by colc
id是什么?

sasacat 2006-03-05
  • 打赏
  • 举报
回复
select column2 ,column3, max(substr(sys_connect_by_path(column1, ','), 2)) column1 from (
select column2 ,column3, colc, lead(colc) over(partition by id order by colc) cold from (
select column1,column2 ,column3, row_number() over(order by column2 ,column3) colc from tab) )
start with cold is null
connect by prior colc=cold
group by column2 ,column3;

laok2yang 2006-03-05
  • 打赏
  • 举报
回复
没明白你的意思

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧