求一高效sql
求一高效率sql
现有如果情况的数据 一张表有下列数据
X Y Z
1 11 a
1 12 b
1 13 c
3 31 e
3 32 f
注:表中每条数据肯定会有另一与之X相等的数据 即X某一值肯定会出现两次以上
我想查询时查询结果是 (查出所有与X值相同的数据的Y字段并把Y拼接成字符串)
X Y Z
1 12,13 a
1 11,13 b
1 11,12 c
3 32 e
3 31 f
注:表中数据可能上千万,但一般同一X对应Y的值不会超过100个 求大侠指教啊,效率最好高点啊
------解决方案--------------------
现有如果情况的数据 一张表有下列数据
X Y Z
1 11 a
1 12 b
1 13 c
3 31 e
3 32 f
注:表中每条数据肯定会有另一与之X相等的数据 即X某一值肯定会出现两次以上
我想查询时查询结果是 (查出所有与X值相同的数据的Y字段并把Y拼接成字符串)
X Y Z
1 12,13 a
1 11,13 b
1 11,12 c
3 32 e
3 31 f
注:表中数据可能上千万,但一般同一X对应Y的值不会超过100个 求大侠指教啊,效率最好高点啊
------解决方案--------------------
- SQL code
create table t(X int, Y int, Z varchar2(10)); insert into t values(1, 11, 'a'); insert into t values(1, 12, 'b'); insert into t values(1, 13, 'c'); insert into t values(1, 1211, 'g'); insert into t values(3, 31, 'e'); insert into t values(3, 32, 'f'); with t1 as ( select x, y, z, ','||wm_concat(y) over (partition by x)||',' y1 from t ) select x, regexp_replace(regexp_replace(replace(y1, ','||y||',', ','), '^,',''), ',$', '') y, z from t1; ---结果-- X Y Z ---------- -------------------- ---------- 1 12,1211,13 a 1 11,1211,13 b 1 11,12,13 g 1 11,12,1211 c 3 31 f 3 32 e
------解决方案--------------------
你妹的**** 我的2楼哪里去了,里面有解决的sql,擦的。。。。。