有一张业务表 data busi,字段为 id,业务号 busi no 以及编码 busi code,请写出根据busi code 将 busi no 合并去重的 sal。数据:
要求最后的结果为:
这个问题怎么解决呢? 其实解决这个问题的关键是分组后的数据合并
,这里需要使用到group_concat(xxx,拼接符合)
方法。
1.首先获取去重后的数据
SELECT busi_code,busi_no FROM t_test GROUP BY busi_code,busi_no
2.在去重后的数据基础上分组处理
SELECT busi_code,GROUP_CONCAT(busi_no,',')
FROM (SELECT busi_code,busi_no FROM t_test GROUP BY busi_code,busi_no) t GROUP BY busi_code
3.去掉,,
这种情况。用replace
函数即可
SELECT busi_code,REPLACE(GROUP_CONCAT(busi_no,','),',,',',')
FROM (SELECT busi_code,busi_no FROM t_test GROUP BY busi_code,busi_no) t GROUP BY busi_code