我有一个包含数组列all_available_tags和used_tags的表。
example row1:
all_available_tags:A,B,C,D
used_tags:A,B
example row2:
all_available_tags:B,C,D,E,F
used_tags:F
我想从所有行中获取不同的all_available_tags集,并且除了所有行中所有used_tags的集合之外。 从上面的例子来看,所有行的all_available_tags将是A,B,C,D,E,F,所有used_tags都是A,B,F。 我正在寻找的最终结果是 C,D,E
我想我需要以某种方式旋转表格,但可能有 100 个不同的标签,所以列出每个标签是不切实际的。 有没有好方法可以做到这一点?
你可以试试:
with tags(at, ut) as
(
select "A,B,C,D", "A,B"
union all
select "B,C,D,E,F", "F"
)
select splitat
from tags
cross join unnest(split(at, ",")) as t1 splitat
except
select splitut
from tags
cross join unnest(split(ut, ",")) as t2 splitut