当前位置: 代码迷 >> Oracle开发 >> gruop by如何筛选
  详细解决方案

gruop by如何筛选

热度:119   发布时间:2016-04-24 06:32:17.0
gruop by怎么筛选?
比如我有一张学生成绩表,里面有得分(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