嘿
我有一张类似于下图的表格
我的目标是编写一个查询,该查询应为每个组织(即该电子表格中的每一行)输出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
,
如果我要运行所需的查询,则会得到以下信息:
谢谢大家
最佳答案
可以这样做
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/