2016-01-29 79 views
0

我想在90算分数,但这个结束了。如果我的数据是如何计算分数超过90 SQL

100 
45 
90 
100 

它应该显示3总行

select g.score as score 
     ,count(case when g.score>=90 then 1 else 0 end) over() as passed 
from grades g 

计数,而是它显示4

回答

2

你要么删除ELSE一部分,所以默认为NULL和COUNT犯规次数NULL

select g.score as score 
     ,count(case when g.score>=90 then 1 end) over() as passed 
from grades g 

或更改COUNTSUM

select g.score as score 
     ,SUM(case when g.score>=90 then 1 else 0 end) over() as passed 
from grades g 
2

只需在SUM编辑COUNTCOUNT计数非空值,所以它甚至计数0; SUM只会'计数'非零值

+0

谢谢大声笑不,我没有喝水,我gu it着它 – user1854438