truy vấn này nhận được tập hợp thống trị trong mạng. ví dụ như vậy cho một mạng lướiLàm thế nào tôi có thể loại bỏ 'ORA-01489: kết quả của chuỗi nối quá dài' trong truy vấn này?
A<----->B
B<----->C
B<----->D
C<----->E
D<----->C
D<----->E
F<----->E
nó trả
B, E
B, F
A, E
nhưng nó không hoạt động cho dữ liệu lớn, vì tôi đang sử dụng phương pháp chuỗi trong kết quả của tôi. tôi đã cố gắng để loại bỏ các phương pháp chuỗi và trả về một quan điểm hay một cái gì đó nhưng không có kết quả
With t as (select 'A' as per1, 'B' as per2 from dual union all
select 'B','C' from dual union all
select 'B','D' from dual union all
select 'C','B' from dual union all
select 'C','E' from dual union all
select 'D','C' from dual union all
select 'D','E' from dual union all
select 'E','C' from dual union all
select 'E','D' from dual union all
select 'F','E' from dual)
,t2 as (select distinct least(per1, per2) as per1, greatest(per1, per2) as per2 from t union
select distinct greatest(per1, per2) as per1, least(per1, per2) as per1 from t)
,t3 as (select per1, per2, row_number() over (partition by per1 order by per2) as rn from t2)
,people as (select per, row_number() over (order by per) rn
from (select distinct per1 as per from t union
select distinct per2 from t)
)
,comb as (select sys_connect_by_path(per,',')||',' as p
from people
connect by rn > prior rn
)
,find as (select p, per2, count(*) over (partition by p) as cnt
from (
select distinct comb.p, t3.per2
from comb, t3
where instr(comb.p, ','||t3.per1||',') > 0 or instr(comb.p, ','||t3.per2||',') > 0
)
)
,rnk as (select p, rank() over (order by length(p)) as rnk
from find
where cnt = (select count(*) from people)
order by rnk
) select distinct trim(',' from p) as p from rnk where rnk.rnk = 1`
Dữ liệu A <---> B, B <---> C ...., được hiển thị ở trên là dữ liệu cơ bản. chúng đại diện cho một dạng quan hệ người dùng và bạn bè. Tôi đang cố gắng tìm tập hợp tối thiểu trong mạng này Tập hợp tối thiểu, trong một mạng xã hội, là tập hợp những người bạn chung với mọi người trong mạng Thông tin thêm về thống trị đặt tại đây : http: //en.wikipedia.org/wiki/Dominating_set –