Arp*_*ita 4 sql sql-server sql-server-2012
我在SQL Server 2012中有一个表,其数据如下:
Request_Type Total_Count
---------------------------
General 25
Inquiry 15
Run Code Online (Sandbox Code Playgroud)
我想返回最后一列中的计数百分比,如下所示:
Request_Type Total_Count Total_Percentage
--------------------------------------------------
General 25 62.5
Inquiry 15 37.5
Run Code Online (Sandbox Code Playgroud)
我尝试了以下查询,
select
Request_Type, Total_Count,
(Total_Count* 100) / isnull(sum(Total_Count),0) as Total_Percentage
from
tbl_Request
Run Code Online (Sandbox Code Playgroud)
但它在Total_Percentage列中返回100 .
任何关于如何实现结果的想法将不胜感激.
谢谢.
您可以使用子查询来获取SUM(Total_Count):
SELECT Request_Type
, Total_Count
, (Total_Count * 100) / (SELECT SUM(Total_Count) FROM tbl_Request) AS Total_Percentage
FROM tbl_Request
Run Code Online (Sandbox Code Playgroud)
使用Sum Over()技巧获取sum所有行然后找到percentage.试试这个..
SELECT Request_Type,
Total_Count,
( Total_Count * 100.0 ) / Sum(Total_Count)OVER()
FROM (SELECT 'General' AS Request_Type,25 AS Total_Count
UNION
SELECT 'Inquiry',15)a
Run Code Online (Sandbox Code Playgroud)
结果:
Request_Type Total_Count Percentage
General 25 62.5
Inquiry 15 37.5
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12184 次 |
| 最近记录: |