是否可以将两个Select语句组合成一个表中的2个单独列,然后将它们分成%?
Select count(*) as 'Quote with VIN'
From BSIT_ERA_RAW_DATA.dbo.QUOTE
where LEN(inv_vehicle_id) = 17
使用下面的第二个Select语句:
select count(*) as 'Number of Quote'
from BSIT_ERA_RAW_DATA.dbo.QUOTE
预期结果如下所示:
Quote with VIN | Number of Quote | Result
-----------------------------------------
116260 | 195850 | 59.36%
答案 0 :(得分:2)
您可以使用条件聚合将两个查询的逻辑组合到一个查询中:
SELECT SUM(CASE WHEN LEN(inv_vehicle_id) = 17 THEN 1 END) AS `Quote with VIN`,
COUNT(*) AS `Number of Quote`,
CONCAT(ROUND(100 * SUM(CASE WHEN LEN(inv_vehicle_id) = 17 THEN 1 END) / COUNT(*), 2),
'%') AS Result
FROM BSIT_ERA_RAW_DATA.dbo.QUOTE
答案 1 :(得分:0)
您可以使用条件聚合。在MySQL中,您可以使用快捷方式执行此操作:
select sum(len(inv_vehicle_id) = 17)) as `Quote with VIN`,
count(*) as `Number of Quote`
From BSIT_ERA_RAW_DATA.dbo.QUOTE ;
在大多数其他数据库中,您需要使用case
。
另外,不要对列名使用单引号。这是一个等待发生的错误。最好的选择是选择不需要转义的名称。但是如果你这样做,请使用MySQL转义字符(反引号)。