INPUT:
x
ID VALUES
1 A
1 B
2 A
3 B
OUTPUT:
ID VALUES
1 AB
1 AB
2 A
3 B
If ID has both values A and B it should return AB.
Advertisement
Answer
You are describing string aggregation as a window function. In standard ANSI SQL, the syntax would be:
select id, listagg(values) within group(order by values) over(partition by id) values
from mytable
Not all databases support this syntax though. In MySQL, you would use group_concat()
, in Postgres, that’s string_agg()
, and so on – but the logic remains the same.