第一个查询:
select COUNT(EUpdate)
from EmpUpdates
where EProj = 'abc' and EID = '101';
第二个查询:
select COUNT(EProj)
from EmpUpdates
where EID = '101';
percentage = (first query / second query) * 100
您可以进行条件聚合。除非eupdate
和eproj
中有null
值,否则我建议使用avg()
select avg(case when eproj = 'abc' then 100.0 else 0 end) res
from empupdates
where eid = 101
如果你真的需要处理null
s:
select 100.0 * count(case when eproj = 'abc' then eupdate end) / count(eproj) res
from empupdates
where eid = 101
我去掉了eid
周围的单引号,因为它看起来像一个数字;如果它真的是一个字符串,那么您可以恢复该更改。
您可以使用条件聚合:
SELECT 100.0*COUNT(CASE WHEN EProj = 'abc' AND EID = '101' THEN EUpdate END) /
COUNT(CASE WHEN EID = '101' THEN Eproj END) AS percentage
FROM EmpUpdates;