我有一张类似于下图的表格

mysql - MySQL-选择多列百分比-LMLPHP

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

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

如果组织的交付百分比:


如果是用汽车制造的,相对于其他车辆,其使用率超过90%,则pvt应为Cars
使用面包车制造,相对于其他车辆,其使用率超过90%,则pvt应为Vans
由教练制造,与其他车辆相比,其利用率超过90%,则pvt应为Coaches
由教练制造,与其他车辆相比,其利用率超过90%,则pvt应为Trucks


如果这些车辆栏都不占组织交付量的90%,则


如果Cars + Vans等于90%,则pvt应为Cars & Vans
如果Coaches + Trucks等于90%,则pvt应为Coaches & Trucks


作为回退,其他任何事情都应将pvt呈现为Mixed

如果我要运行所需的查询,则会得到以下信息:

mysql - MySQL-选择多列百分比-LMLPHP

谢谢大家

最佳答案

可以这样做

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

关于mysql - MySQL-选择多列百分比,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49284801/

10-10 08:26