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

来自毛兆余的问题

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

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

  例如:

  (列名)idname

  1a

  2a

  3b

  4b

  5c

  ……

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

1回答
2020-05-22 23: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

最新问答

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  •