RosettaCodeData/Task/Symmetric-difference/DuckDB/symmetric-difference.duckdb

13 lines
398 B
Plaintext

create or replace function arrxor(list1, list2) as
(select array_agg(elements) from
(select min(arr) as mn, max(arr) as mx, elements from
( (select 1, unnest(list1))
union all
(select 2, unnest(list2)) ) as t(arr, elements)
group by elements
having mn = mx) ) ;
# Example:
select arrxor(['this','is','a','test'], ['also','part','of','a','test'] ) as arrxor;