Sql server按分母忽略分子

时间:2014-07-24 16:04:14

标签: sql sql-server

我有一个表格格式如下:

Column1  Column2  Column3  Column4
abc         345    56        67
abc          43    56        87
abc         54     34        12 
abc         null   12        56

select Column1,sum(Column2+Column3)/sum(Column4 +Columnn3) as pct
group by column1

这给了我600/380 = 1.57但是 当第2列为空时,我想忽略第4列+第3列的求和,因此输出应为588/312 = 1.88

如果分子中的一个值为空,有人可以告诉我如何忽略分母

由于

2 个答案:

答案 0 :(得分:1)

在SQL Server中,您可以使用isnullnull使用替代值:

select  col1
,       sum(isnull(col2, 0) + col3) / sum(col4 + col3)
from    YourTable
group by
        col1

编辑在回复您的评论时,请查看JChao的回答。

答案 1 :(得分:1)

为什么不过滤掉空行?

    select Column1,sum(Column2+Column3)/sum(Column4 +Column3) as pct
    from table1 
    where column2 is not null
    group by column1