您可以使用条件聚合来做到这一点:
SELECT t.productID,
MAX(CASE WHEN t.type1 = 1 THEN 1 ELSE 0 END) as type1_ind,
MAX(CASE WHEN t.type1 = 2 THEN 1 ELSE 0 END) as type2_ind,
MAX(CASE WHEN t.type1 = 3 THEN 1 ELSE 0 END) as type3_ind
FROM YourTable t
GROUP BY t.productID
这对于所有productID都是动态的,而不仅仅是特定的。要选择一个特定的,请group by
用您的WHERE
子句替换。
如果产品具有(1)或没有(0),这将返回每种类型的每种产品的指示。
因此,例如数据:
PRODUCTID | Type1
1 1
1 2
1 3
2 3
这将返回:
PRODUCTID | TYPE1_IND | TYPE2_IND | TYPE3_IND
1 1 1 1
2 0 0 1
或将它们全部作为一栏使用 GROUP_CONCAT()
SELECT t.productID,
GROUP_CONCAT(concat('TYPE',t.type1))
FROM YourTable t
GROUP BY t.productID
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句