如何根据1个字段的计数计算总计百分比,并按另一个字段过滤

时间:2016-10-10 18:19:47

标签: sql sql-server

数据和期望结果:

enter image description here

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

我对SQL很新,并且只能获得整体总数(例如使用提供的数据,Smith 40 3 12 25%

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

你可以使用group by和dinamic temp table来计算总数

  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