【发布时间】:2021-06-18 19:21:14
【问题描述】:
我正在尝试为我的表格中的一些错误创建一个百分比。 我构建了一个查询,其中包含每个值的错误数量、总错误和除法。 但是总是给我 0(我添加了一个检查以查看值是否为数字)。
select
ZZ0010 as Error_type
, qty
, total
,running_sum
, isnumeric(total)
,isnumeric(running_sum)
,running_sum/total
from (
select ZZ0010
,(count( [ZZ0010] )) as qty
,sum(nullif(count( [ZZ0010] ),0) ) over(order by count( [ZZ0010] ) desc,ZZ0010) as running_sum
,sum(nullif(count( [ZZ0010] ),0) ) over() as total
from md.CAR_CRM_DS_ZCRM_Z101_BUSINESS_ATTR_VT
group by ZZ0010
having (count( [ZZ0010] )) is not null
) tbl
order by running_sum asc
| Error_type | qty | total | running_sum | isnumeric(total) | isnumeric(running_sum) | running_sum/total |
|---|---|---|---|---|---|---|
| 2 | 2123 | 3931 | 2123 | 1 | 1 | 0 |
| 10 | 1808 | 3931 | 3931 | 1 | 1 | 0 |
【问题讨论】:
-
整数除法。乘以
1.0将其更改为小数running_sum * 1.0 / total -
你是对的!如此简单的解决方案!谢谢!
标签: sql sql-server tsql integer-division