sqlserver 里怎么求百分比

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlserver 里怎么求百分比相关的知识,希望对你有一定的参考价值。

select REALHANDLER, count(*) as 总数, sum(case when status='RESOLVED' then 1 else 0 end)as 已解决,
sum(case when status!='RESOLVED' then 1 else 0 end)as 未解决,
sum(case when status='RESOLVED' then 1 else 0 end)/count(*) as 完成率
from INCIDENT
group by REALHANDLER
这是我的代码,可是在完成率那显示的如果小于1的都显示为0,求高手指点,此是运用在报表里的。

--将1改成1.00,0 改成0.00
select REALHANDLER, count(*) as 总数, sum(case when status='RESOLVED' then 1 else 0 end)as 已解决,
sum(case when status!='RESOLVED' then 1 else 0 end)as 未解决,
sum(case when status='RESOLVED' then 1.00 else 0.00 end)/count(*) as 完成率
from INCIDENT
group by REALHANDLER
参考技术A 这个就是因为你没有为case when status='RESOLVED' then 1 else 0 end定意数据类型告成的的sum(case when status='RESOLVED' then 1 else 0 end) decimal 定认成这种数据类型就可以了

sqlserver问题,求思路

如以下结果集:
月份 日最高访问量 月访问量
1 20 30
3 10 20
4 100 200
二月份由于没有访问量所以根据月份分组没有二月份数据。如何在这个数据集里插入"2 0 0"。让1到4月份连续起来

目前微软做数据分析都是采用的创建维度表来实现的。
也就是创建时间维度表。vs来做就可以。

可以用代码模拟一下:
--模拟既有表
declare @tbA table
(
CMonth char(7),
DMaxView int,
MMaxView int
)
insert into @tbA(CMonth,DMaxView,MMaxView)
select '2012-01','20','30' union all
select '2012-03','10','20' union all
select '2012-04','100','200'
--维度时间表
declare @tb table
(
id int identity(1,1),
RQ char(7)
)
declare @SRQ DateTime set @SRQ='2012-01-01 00:00:00.000'
declare @ERQ DateTime set @ERQ='2012-05-01 00:00:00.000'
declare @temp int set @temp=0
declare @end int set @end=datediff(m,@SRQ,@ERQ)
while @temp<@end
begin
insert into @tb(RQ) values (convert(char(7),DATEADD(m,@temp,@SRQ),120));
set @temp=@temp+1;
end
select A.RQ,isnull(B.DMaxView,0),isnull(B.MMaxView,0)
from @tb A
left join @tbA B on (A.RQ=B.CMonth)
-------
结果是:
-------------------------
2012-01 20 30
2012-02 0 0
2012-03 10 20
2012-04 100 200
---
维度表就是一个连续的时间表。时间维度。
参考技术A 先用select 1 as M union all select 2 union all select 3 union all select 4..... 创建建一个1到12的子表,再以这个子表去左关联按月汇总的信息。 参考技术B 不太明白你的意思,如果仅仅是补上一条数据,用 insert语句插入一条数据就可以了吧。 参考技术C insert into tablename (月份,日最高访问量,月访问量) values ('2','0','0')

以上是关于sqlserver 里怎么求百分比的主要内容,如果未能解决你的问题,请参考以下文章

Oracle里SQL语句的百分比运算

C语言中怎么求百分比?

oracle 怎么求累计百分比

oracle中如何求百分比?

如何让excel中的数字都显示为百分比

在js中怎样求两个数的百分比,比如4和5的百分比为80%,请高手赐教,谢谢先