Sql server 为什么SQL百分比计算对不应等于零的内容返回零百分比?

Sql server 为什么SQL百分比计算对不应等于零的内容返回零百分比?,sql-server,statistics,Sql Server,Statistics,查询: 输出: 为什么此查询对空段返回0%?它正在执行整数除法。改为尝试*100.0。COUNT返回一个整数,COUNT*100仍然是一个整数。如果COUNT**100小于SELECT COUNT FROM table,则由于它执行整数除法,它将返回整数0@GiorgosBetsos此更改导致段1、2和3现在有小数,但null仍然有0percent@Lamak有趣的那么,我应该怎么做才能使它正确地产生一个非零呢?啊,对不起,我是说@giorgosbetos SELECT _column_ a

查询:

输出:


为什么此查询对空段返回0%?

它正在执行整数除法。改为尝试*100.0。COUNT返回一个整数,COUNT*100仍然是一个整数。如果COUNT**100小于SELECT COUNT FROM table,则由于它执行整数除法,它将返回整数0@GiorgosBetsos此更改导致段1、2和3现在有小数,但null仍然有0percent@Lamak有趣的那么,我应该怎么做才能使它正确地产生一个非零呢?啊,对不起,我是说@giorgosbetos
SELECT
  _column_ as segment,
  count(*) as count,
  (Count(_column_)* 100 / (Select Count(*) From _table_)) as percentage
FROM
  _table_
GROUP BY _column_
ORDER BY _column_
[{ segment: null,  count: 308,    percentage: 0 },
 { segment: 1,     count: 16346,  percentage: 40 },
 { segment: 2,     count: 13186,  percentage: 32 },
 { segment: 3,     count: 10309,  percentage: 25 }]