SQLSERVER数据库求每列不同数据所占百分比
题目
SQLSERVER数据库求每列不同数据所占百分比
例如:
(列名)id name
1 a
2 a
3 b
4 b
5 c
……
id表示的是流水号,与问题无关.我想求的是name列中每个相同数据所占个数的比例,应该怎么样写查询语句啊?或者是有其他的好的方法也行(我是用C#做一个程序).因为name中数据个数非常多,而且种类也不止是a,b,c三种,所以请大家帮忙想想办法,
答案
declare @ACount int
select @ACount=count(*) from 表 --计算总数,避免放在大数据的select中影响效率
if @ACount>0 --判断是否有记录,无记录时@Acount为0,不能做除数
select 表.name,cast(count(*) as numeric(10,3))/cast(@ACount as numeric(10,3)) from 表 group by 表.name --做百分比时要避免直接用/,会整除的,就无法判断%比例了.
else
select '表中无记录,无法统计比例'
--小数点后保留三位,换算成%比,应该如12.5%的精确度,numeric(10,3)前面的10如果长度不够可以根据需要修改
举一反三
已知函数f(x)=x,g(x)=alnx,a∈R.若曲线y=f(x)与曲线y=g(x)相交,且在交点处有相同的切线,求a的值和该切线方程.
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
最新试题
- skate 变动名词
- ①三心二意,眼花缭乱,日积月累,无济于事,饱经风霜,万紫千红,一叶障目.②实事求是,国色天香,疑神疑鬼,银钩铁画,锦绣河山,一言九鼎,秋风扫落叶,③春兰秋菊,病入膏肓,树碑立传,入木三分,头重脚轻,前
- 一艘轮船在A、B两码头之间航行,顺水航行时需8小时,逆水航行需12小时
- 雨水和径流会把地表的泥土带走,使土地受到( ),从而使地形,地貌发生( ).
- it takes me 20 minutes to go to school on foot from my house.
- 送东阳马生序文末最能概括求学经验的句子是
- 英语翻译
- 已知cos(π-α)=- ,sin(π+β)= ;α,β ( π,2π) 则sin(α+β)和tan(α+β)的
- y= 200(x-8),0
- 各种生物体内都含有大量的水,
热门考点