SQLSERVER数据库求每列不同数据所占百分比例如:(列名-查字典问答网
分类选择

来自毛兆余的问题

  SQLSERVER数据库求每列不同数据所占百分比例如:(列名)idname1a2a3b4b5c……id表示的是流水号,与问题无关.我想求的是name列中每个相同数据所占个数的比例,应该怎么样写查询语句啊?或者

  SQLSERVER数据库求每列不同数据所占百分比

  例如:

  (列名)idname

  1a

  2a

  3b

  4b

  5c

  ……

  id表示的是流水号,与问题无关.我想求的是name列中每个相同数据所占个数的比例,应该怎么样写查询语句啊?或者是有其他的好的方法也行(我是用C#做一个程序).因为name中数据个数非常多,而且种类也不止是a,b,c三种,所以请大家帮忙想想办法,

1回答
2020-05-2223:18
我要回答
提示:回答问题需要登录哦!
陈武凡

  declare@ACountint

  select@ACount=count(*)from表--计算总数,避免放在大数据的select中影响效率

  if@ACount>0--判断是否有记录,无记录时@Acount为0,不能做除数

  select表.name,cast(count(*)asnumeric(10,3))/cast(@ACountasnumeric(10,3))from表groupby表.name--做百分比时要避免直接用/,会整除的,就无法判断%比例了.

  else

  select'表中无记录,无法统计比例'

  --小数点后保留三位,换算成%比,应该如12.5%的精确度,numeric(10,3)前面的10如果长度不够可以根据需要修改

2020-05-22 23:22:48
大家都在问
最新问答