Sql server 计算SQL Server中总计的百分比
如何计算总数的百分比,就像我们在excel中用百分比表示计数一样 请参考附加的屏幕截图,我需要%显示而不是数字 下面是我的SQL查询:Sql server 计算SQL Server中总计的百分比,sql-server,Sql Server,如何计算总数的百分比,就像我们在excel中用百分比表示计数一样 请参考附加的屏幕截图,我需要%显示而不是数字 下面是我的SQL查询: SELECT [Region]=ISNULL(zone, 'Grand Total'), [chennai]=SUM([chennai]), [Kandivali]=SUM([Kandivali]), [kolhapur]=SUM([kolhapur]) from (select zone,[Ret#Location] from [Test].[dbo].[d
SELECT
[Region]=ISNULL(zone, 'Grand Total'),
[chennai]=SUM([chennai]),
[Kandivali]=SUM([Kandivali]),
[kolhapur]=SUM([kolhapur])
from
(select zone,[Ret#Location]
from [Test].[dbo].[dailyAssure_1]
) src
pivot
(count([Ret#Location])
for [Ret#Location] in ([chennai], [Kandivali], [kolhapur])
) piv
Group by ROLLUP(zone);
这是一个有点黑客,但类似的东西可能会工作
with
data as (
-- this is your query
SELECT [Region]=zone,
[chennai]=SUM([chennai]),
[Kandivali]=SUM([Kandivali]),
[kolhapur]=SUM([kolhapur])
from (select zone, [Ret#Location] from [Test].[dbo].[dailyAssure_1]) src
pivot
(count([Ret#Location]) for [Ret#Location] in ([chennai], [Kandivali], [kolhapur]) ) piv
Group by ROLLUP(zone)
) ,
totals as (
-- one row with totals for chennai, etc...
select zone='Grand Total',
chennai=sum(chennai),
kandivali=sum(kandivali),
kolhapur=sum(kolhapur)
from data
)
select d.zone ,
d.chennai / t.chennai as chennai ,
d.kandivali/ t.kandivali as kandvali ,
d.kolhapur / t.kolhapur as kolhapur
from data d
cross join totals t
;
它不包括总计行(无论如何都是1),您可能需要强制转换%计算中使用的值(或%值本身)以获得所需的输出格式。您可以简单地除以行数。SUM(钦奈)/Count(*)如果这不起作用,那么您需要为我们提供一些详细信息。同意上述意见,但您需要格式化或强制转换计算结果,以保持每个值的格式相同。第一列(钦奈)的总和似乎是104.82而不是100,对吗?Andrea:east%在钦奈是0.27而不是4%,我的错误,sorryBoCoKeith:Getting Error as Error as Error syntax near')。在数据d附近,plz check我很难再进一步,因为如果没有访问您的数据和模式,我实际上无法执行查询。我验证了查询在SSMS中的解析是否正确。您使用的是什么版本的SQL?