MySQL - Select 多列百分比

MySQL - Select percentage with multiple columns

我有一个table类似于下图

我的目标是为每个组织(即该电子表格中的每一行)编写一个查询,该查询应输出 ID 和一个名为 pvt 的列

pvt 列的值应基于以下逻辑:

如果组织的交付百分比:

  1. 是用汽车制造的,与其他车辆相比超过90%,然后pvt 应该是 Cars

  2. 使用货车制造,与其他车辆相比 超过 90%,然后pvt 应该是 Vans

  3. 使用客车制造,与其他车辆相比超过 90%,然后pvt 应该是 Coaches

  4. 使用客车制造,与其他车辆相比超过 90%,然后pvt 应该是 Trucks

如果这些车辆列中的 none 占组织交付的 90%,则

  1. 如果Cars + Vans等于90%,那么pvt应该是Cars & Vans
  2. 如果Coaches + Trucks等于90%,那么pvt应该是Coaches & Trucks

作为回退,其他任何东西都应该将 pvt 呈现为 Mixed

如果我 运行 我想要的查询,我会得到这样的结果:

谢谢大家。

可以这样做,

SELECT
CASE WHEN ((truck / t.vehicles) * 100) > 90 THEN 'Truck'
WHEN ((van / t.vehicles) * 100) > 90 THEN 'Van'
WHEN ((coach / t.vehicles) * 100) > 90 THEN 'Coach'
WHEN (((truck/ t.vehicles) * 100) + ((van / t.vehicles) * 100)) > 90 THEN 'Truck and Van'
WHEN (((coach / t.vehicles) * 100) + ((lorry/ t.vehicles) * 100)) > 90 THEN 'Lorry and Coach'
ELSE 'Mixed'
END AS `pvt`

FROM Table f
INNER JOIN (SELECT t.id,SUM(van) + SUM(truck) + SUM(coach) + SUM(lorry) AS `vehicles` FROM Table t GROUP BY t.id) t ON t.id=f.id