连续获取每个值的百分比

时间:2018-07-16 15:01:35

标签: sql sql-server

我对客户名称进行了非常简单的分类,并对该名称进行了相应的计数。我需要的是第三列,其中列出了使用该名称的客户百分比。

这是我需要的一个例子:

|NAME|       |NAME_COUNT|    |NAME_PERCENT|
 Bob          5               41.7
 John         4               33.3
 Toby         3               25.0

我有前两个字段,但似乎无法确定百分比。

查询的最后一部分如下:

SELECT
a.Name
a.Name_Count

FROM #NameTemp a

GROUP BY
a.Name,
a.Name_Count

ORDER BY
a.Name_Count DESC

我认为这将在select语句中起作用以获取每一行的百分比,但事实并非如此。它只为我在“百分比”字段中的每一行提供的值为1:

a.Name_Count/SUM(a.NameCount) AS "Percent"

1 个答案:

答案 0 :(得分:4)

只需使用窗口功能:

<html>
<style>
.change{
position:relative;
left:20%;
right:20%
top:40%
}
</style>


 <p class="change">Yo change!</p>

</html>

请注意select name, name_count, name_count * 1.0 / sum(name_count) over () from #nametemp; 。 SQL Server执行整数除法,因此您需要转换为具有小数位的格式。

我猜测您的原始表格尚未汇总。如果是这样,那么在一个没有临时表的查询中完成所有操作是一个更好的解决方案:

* 1.0