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 }]