有一个表test:
id address
1 山西
2 陕西
3 北京
4 河南
5 海南
6 北京
7 陕西
求每个地方占得百分比,读取出来的数据
string str=“['山西',占得百分比],['陕西',占得百分比],['北京',占得百分比],['河南',占得百分比],['海南',占得百分比]”
急求解决方案,谢谢解决方案,.net
id address
1 山西
2 陕西
3 北京
4 河南
5 海南
6 北京
7 陕西
求每个地方占得百分比,读取出来的数据
string str=“['山西',占得百分比],['陕西',占得百分比],['北京',占得百分比],['河南',占得百分比],['海南',占得百分比]”
急求解决方案,谢谢解决方案,.net
select address,count(1) as DataCount from test group by address
取全部记录数
select count(1) from test把分组统计的数据装入到一个Dictionary<string,int>,string是address,int是出现次数然后遍历这个字典,把value(也就是int的部分)除以全部记录数可以边遍历边拼接什么的,也可以遍历计算完再处理,具体看你需求。
address,
convert(varchar(10), cast(COUNT(1)*100/(select count(1) from test) as dec(18,2))) + '%' AS T
FROM test
GROUP BY address
select address,100*CAST(num as float)/CAST(totalcount as float) as scale from (
select address,(select COUNT(*) from A) as totalcount,COUNT(*) as num from A group by address) A/*
北京 28.5714285714286
海南 14.2857142857143
河南 14.2857142857143
山西 14.2857142857143
陕西 28.5714285714286
*/剩下的自己遍历数据库拼接