【问题标题】:How can I calculate a percentage from values obtained by 2 different queries in SSMS?如何从 SSMS 中的 2 个不同查询获得的值计算百分比?
【发布时间】:2021-02-22 06:55:24
【问题描述】:

第一个查询:

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

【问题讨论】:

    标签: sql sql-server count pivot


    【解决方案1】:

    您可以进行条件聚合。除非eupdateeproj 中有null 值,否则我会推荐avg()

    select avg(case when eproj = 'abc' then 100.0 else 0 end) res
    from empupdates 
    where eid = 101
    

    如果你真的需要处理nulls:

    select 100.0 * count(case when eproj = 'abc' then eupdate end) / count(eproj) res
    from empupdates 
    where eid = 101
    

    我删除了eid 周围的单引号,因为它看起来像一个数字;如果它确实是一个字符串,那么您可以恢复该更改。

    【讨论】:

      【解决方案2】:

      您可以使用条件聚合:

      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;
      

      【讨论】:

        猜你喜欢
        • 2019-06-08
        • 1970-01-01
        • 2013-03-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-23
        • 2022-12-07
        • 1970-01-01
        相关资源
        最近更新 更多