Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何根据一个字段的计数并通过另一个字段过滤来计算总数的百分比_Sql_Sql Server - Fatal编程技术网

Sql 如何根据一个字段的计数并通过另一个字段过滤来计算总数的百分比

Sql 如何根据一个字段的计数并通过另一个字段过滤来计算总数的百分比,sql,sql-server,Sql,Sql Server,数据和预期结果: 我有上述数据,我想计算百分比并显示相应的记录计数。CountKey是3个字段的串联,我只想在它按姓氏唯一时对其进行计数,然后我想按姓氏找出每个不同状态类型的合计百分比。CountKeyTotal是Smith的唯一CountKey总数,CountKey是LastName和Status的唯一CountKey总数 我对SQL相当陌生,只能得到全部的两个总数(例如,使用提供的数据,Smith 40 3 12 25% 如果您有任何帮助,我们将不胜感激。您可以使用group by和din

数据和预期结果:

我有上述数据,我想计算百分比并显示相应的记录计数。CountKey是3个字段的串联,我只想在它按姓氏唯一时对其进行计数,然后我想按姓氏找出每个不同状态类型的合计百分比。CountKeyTotal是Smith的唯一CountKey总数,CountKey是LastName和Status的唯一CountKey总数

我对SQL相当陌生,只能得到全部的两个总数(例如,使用提供的数据,Smith 40 3 12 25%


如果您有任何帮助,我们将不胜感激。

您可以使用group by和dinamic temp表格进行总计

  select 
    a.name, a.status
 ,  count(a.countKey) as CountKEy
 , c2 as CountKeyTotal
 , (a.count(*) / b.c1) *100 as percentage 
 from my_table as a 
 inner join( select name, count(*) as c1 , count(countKey)  c2 from  my_table
             group by name) b  on a.name = b.name
 group by a.name

我有MS SQL server管理工作室和SQL报表服务可供使用