【发布时间】:2012-08-30 19:22:38
【问题描述】:
我在编写 SQL 查询以在 % 模式下获取结果时遇到问题,我熟悉 SQL Server 的 SUM() 和 COUNT() 函数,但在查询内部实现逻辑时遇到问题我希望得到以下形式的结果: -
UserName--- % of AccepectResult---- % of RejectResult
我的表结构是这样的,有两列 Name (UserName) 和 Result :
NAME Result
---------------
USer1 A
USer1 A
USer1 A
USer1 R
USer1 R
USer1 A
USer2 A
USer2 A
USer2 A
USer2 A
USer2 R
A - Accepted Result
R - Rejected Result
我正在尝试这样写这个查询..
select * into #t1 from
(
select UserName , count(Result) as Acc
from Test where result = 'A'
group by UserName
) as tab1
select * into #t2 from
(
select UserName , count(Result) as Rej
from Test where result = 'R'
group by UserName
) as tab2
select #t1.UserName ,
#t1.Acc ,
#t2.Rej ,
(#t1.Acc)*100/(#t1.Acc + #t2.Rej) as AccPercentage,
(#t2.Rej)*100/(#t1.Acc + #t2.Rej) as RejPercentage
from #t1
inner join #t2 on #t1.UserName = #t2.UserName
drop table #t1
drop table #t2
有没有其他方法可以编写此查询以及在 SQL Server 中计算百分比的任何内置函数?
【问题讨论】:
标签: sql sql-server percentage