日期:2014-05-17  浏览次数:20472 次

急求解决方案
有一个表test:
 id  address
 1    山西
 2    陕西
 3    北京
 4    河南
 5    海南
 6    北京
 7    陕西
 求每个地方占得百分比,读取出来的数据
 string str=“['山西',占得百分比],['陕西',占得百分比],['北京',占得百分比],['河南',占得百分比],['海南',占得百分比]”
  急求解决方案,谢谢
解决方案 ,.net

------解决方案--------------------
SELECT 
     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
*/

剩下的自己遍历数据库拼接