我有3列标签
PRODUCT....CATEGORY......CLASS
X............1.............II
Y............1.............II
Z............1.............II
Y............2.............II
我希望返回包含每列所有DISTINCT值的单行:
RESULT
X Y Z 1 2 II
获得此结果的最佳方法是什么?
答案 0 :(得分:3)
假设列之间没有重复项,您可以使用group_concat()
:
select concat_ws(' ',
group_concat(distinct product separator ' '),
group_concat(distinct category separator ' '),
group_concat(distinct class separator ' ')
)
from tab t;
答案 1 :(得分:1)
您可以先收集子选择中的所有值,然后使用group_concat
select group_concat(v separator ' ')
from (select product as v from testa
union
select category as v from testa
union
select class as v from testa) t