我有一个数据库,列出了每个车型年份每个品牌和型号的装饰和发动机,并在每行中列出了Trim & Engine到Make&Model。我想将这些数据压缩并输出到CSV电子表格中,以便每个品牌和型号都在一行上,修剪和引擎数据分别压缩到一列中。
数据库目前是SQL格式,所以我可以在服务器端执行此操作(例如,PHP,然后输出为CSV格式),或者我可以将数据输出为CSV格式并在我的计算机上操作数据(例如,使用Excel,如果甚至可以这样做,或者其他东西)。我估计大约有 50,000 行将被压缩到大约 8,000 行。
我想拿这个:
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
演示