我怎样才能将这个数据列表压缩到一个字段?

我有一个数据库,列出每个模型年的每个品牌和型号的修饰和引擎,并在每行中列出修饰和引擎到品牌和型号。 我想将这些数据压缩并输出到CSV电子表格中,这样每个Make&Model都在一行上,Trim和Engine数据每个压缩成一列。

该数据库目前在SQL中,所以我可以做服务器端(例如,PHP,然后输出为CSV格式),或者我可以输出数据到CSV格式,并操纵我的电脑上的数据(例如,使用Excel的if这甚至有可能与此,或其他)。 我估计大约有5万行,将被压缩到8000左右。

我想要这个:

Vehicle: Trim: Engine: Year: Chevrolet Impala LS 2.5L 2015 Chevrolet Impala LS 3.6L 2015 Chevrolet Impala LT 2.5L 2015 Chevrolet Impala LT 3.6L 2015 Chevrolet Impala LTZ 2.5L 2015 Chevrolet Impala LTZ 3.6L 2015 Chevrolet Malibu LS 2.5L 2015 Chevrolet Malibu LT 2.0L 2015 Chevrolet Malibu LT 2.5L 2015 Chevrolet Malibu LTZ 2.0L 2015 Chevrolet Malibu LTZ 2.5L 2015 Chevrolet Silverado 1500 High Country 5.3L 2015 Chevrolet Silverado 1500 High Country 6.2L 2015 Chevrolet Silverado 1500 LT 4.3L 2015 Chevrolet Silverado 1500 LT 5.3L 2015 Chevrolet Silverado 1500 LTZ 5.3L 2015 Chevrolet Silverado 1500 LTZ 6.2L 2015 Chevrolet Silverado 1500 WT 4.3L 2015 Chevrolet Silverado 1500 WT 5.3L 2015 

并将其压缩成独特的线条:

 Unique Vehicle: Unique Trims: Unique Engines: Year: Chevrolet Impala LS, LT, LTZ 2.5L, 3.6L 2015 Chevrolet Malibu LS, LT, LTZ 2.0L, 2.5L 2015 Chevrolet Silverado 1500 High Country, LT, LTZ, WT 4.3L, 5.3L, 6.2L 2015 

谢谢大家!谢谢!

假设你正在使用MySQL(你没有指定),那么你可以使用GROUP_CONCAT()函数

 SELECT vehicle, GROUP_CONCAT(DISTINCT trim ORDER BY trim) AS unique_trims, GROUP_CONCAT(DISTINCT engine ORDER BY engine) AS unique_engines, year FROM vehicles GROUP BY vehicle, year ORDER BY vehicle, year 

演示