select recipient-name,group_concat(concat(sku,'X',(case when quantity-purchased>1 then concat('quantity-purchased>','****') else quantity-purchased end))) from tb group by recipient-name having count(*)>1 union all select concat(sku,'X',quantity-purchased,'********') from tb where quantity-purchased>1
SELECT * , group_concat(' ' , concat_ws( ' X ', `sku` , `quantity-purchased` ) , if(`quantity-purchased`> 1, '****' , ' ') ),group_concat(' ' , `order_id` , ' ') FROM ( select * from `sale_orders` order by `sku`) T WHERE `shipments` =0 AND `number` =$id GROUP BY `recipient-name` , `ship-address-1` ORDER BY length(group_concat( ' ' , concat_ws( ' X ', `sku` , `quantity-purchased` ) , ' ' )) DESC,`sku`以上是我原来汇总,请问怎么在这个基础上加上那些判断条件
select number,recipient-name, group_concat(sku,' X ',quantity-purchased,if(purchased>1,'*****','')) from 原始数据 t where Number=1 and (quantity-purchased>1 or exists 1<(select count(*) from 原始数据 where recipient-name=t.recipient-name) ) group by recipient
利于理解的话,请使用union连接二者。 知识点: group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])
group_concat(sku,' X ',quantity-purchased,if(purchased>1,'*****',''))
from 原始数据
group by recipient
from tb
group by recipient-name
having count(*)>1
union all
select concat(sku,'X',quantity-purchased,'********')
from tb
where quantity-purchased>1
group_concat(sku,' X ',quantity-purchased,if(purchased>1,'*****',''))
from 原始数据 t
where Number=1
and
(quantity-purchased>1
or
exists 1<(select count(*) from 原始数据 where recipient-name=t.recipient-name)
)
group by recipient
知识点:
group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])