比如我有一张学生成绩表,里面有得分(df)和是否作弊(isfake:1为作弊)字段,我在统计这个班的总得分的时候,如果有一个人作弊这个班总得分就为0.
select nvl2(b.df,sum(a.df),0) from student a,(select df from student where isfake='1' ) b group by a.class
这是我写的一种方式,我现在要问的是不写(select df from student where isfake='1' ) b,有没有什么函数能查询出group by里的一条记录isfake=1则sum(a.df)=0
------解决思路----------------------
select class,decode(
sum(decode(isfake,'1' ,1)),
0,sum(df),
0
)
from student group by class