我有一个表格格式如下:
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
如果分子中的一个值为空,有人可以告诉我如何忽略分母
由于
答案 0 :(得分:1)
在SQL Server中,您可以使用isnull
为null
使用替代值:
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