首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从同一表中的两个不同where语句中使用组by创建计算列

问从同一表中的两个不同where语句中使用组by创建计算列
EN

Stack Overflow用户
提问于 2015-12-03 18:47:49
回答 1查看 21关注 0票数 0

我试图创建一个sql结果,它显示客户备份作业的成功率(%)。

我想以某种方式将以下查询结合起来以实现这一点:

代码语言:javascript
复制
select [colCustomerID],count(*) as Totalbackups FROM [BackupStat].[dbo].[tblJobSummary] group by [colCustomerID]

select [colCustomerID],count(*) as Failedbackups FROM [BackupStat].[dbo].[tblJobSummary] where [colStatus] !='Success' and [colStatus] !='Warning' group by [colCustomerID]

第一个查询的结果如下所示:

代码语言:javascript
复制
colCustomerID   Totalbackups
EXK-1670001 315
INK-2325001 8
INK-995001  5
INK-2326001 10
INK-1729001 7
INK-237001  2
GBG-3795001 4
INK-3422001 4
INK-3768001 138
INK-3780001 10
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-03 19:10:58

您可以创建两个子查询,然后执行计算。您可能希望更改十进制转换中的精度和比例尺。

编辑:添加了Totalbackups列。

代码语言:javascript
复制
select 
    tb.colCustomerID,
    tb.Totalbackups,
    convert(decimal(5,2), fb.Failedbackups)/convert(decimal(5,2), tb.Totalbackups)
from    
(
    select 
        [colCustomerID],
        count(*) as Totalbackups 
    FROM [BackupStat].[dbo].[tblJobSummary] 
    group by [colCustomerID]
) tb
    inner join 
        (
            select 
                [colCustomerID],
                count(*) as Failedbackups 
            FROM [BackupStat].[dbo].[tblJobSummary] 
            where [colStatus] !='Success' 
                and [colStatus] !='Warning' 
            group by [colCustomerID]
        ) fb
            on tb.colCustomerID = fb.colCustomerID

希望这能有所帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34073835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档