MySQL - Select 多列百分比
MySQL - Select percentage with multiple columns
嗨
我有一个table类似于下图
我的目标是为每个组织(即该电子表格中的每一行)编写一个查询,该查询应输出 ID 和一个名为 pvt
的列
pvt
列的值应基于以下逻辑:
如果组织的交付百分比:
是用汽车制造的,与其他车辆相比超过90%,然后pvt
应该是 Cars
使用货车制造,与其他车辆相比 超过 90%,然后pvt
应该是 Vans
使用客车制造,与其他车辆相比超过 90%,然后pvt
应该是 Coaches
使用客车制造,与其他车辆相比超过 90%,然后pvt
应该是 Trucks
如果这些车辆列中的 none 占组织交付的 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
嗨
我有一个table类似于下图
我的目标是为每个组织(即该电子表格中的每一行)编写一个查询,该查询应输出 ID 和一个名为 pvt
的列
pvt
列的值应基于以下逻辑:
如果组织的交付百分比:
是用汽车制造的,与其他车辆相比超过90%,然后
pvt
应该是Cars
使用货车制造,与其他车辆相比 超过 90%,然后
pvt
应该是Vans
使用客车制造,与其他车辆相比超过 90%,然后
pvt
应该是Coaches
使用客车制造,与其他车辆相比超过 90%,然后
pvt
应该是Trucks
如果这些车辆列中的 none 占组织交付的 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