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].[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),您可能需要转换 % 计算中使用的值(或 % 值本身)以获得所需的输出格式。
推荐阅读
- reactjs - 如何在 html 中从下一个/头移动到头
- javascript - 我可以使用 JavaScript/jQuery 在每个图像更改上添加动画吗?
- java - 我的jsp网站上的Mysql错误“列'USER_NAME'不能为空”
- msbuild - Azure DevOps 中的 Visual Studio 构建任务失败 - 我的 .Net Framework 引用的项目是 .Net Core?
- docker - 在 Windows 上构建的 Raspberry 上运行 Docker 映像
- java - 具有 N 次元组的 jOOQ "IN" 谓词
- html - 如何将表单数据发送到同一网页中的 iframe src
- joomla - 找不到请求的页面
- bash - 检查终端中的特定网站是否已启动?
- oauth - 为什么 .eot 网络字体没有从 Tomcat 服务器下载到 IE 11?