光球层上的黑子
2021-11-03 14:41
采纳率: 100%
浏览 19

一个 oracle 查询语句使用问题

这学期刚刚学习Oracle,我创建了一个视图来统计学生成绩。
代码如下:


CREATE OR REPLACE VIEW STU_SCORES
AS
SELECT 学生.学号 as 学号,
       SUM(选课.课程得分) as 总分,
       COUNT(*) as 课程数 ,
       round(AVG(选课.课程得分),3) as 平均分,
       SUM(课程.学分) as 总学分
FROM 选课,学生,课程 
WHERE 选课.学号=学生.学号 AND 选课.课程号=课程.课程号 
GROUP BY 学生.学号;

我现在想让总学分列只统计通过(成绩大于等于60)的课程的学分,应该如何改sql语句呢?
感谢各位!

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • zhangyongze_z 2021-11-03 17:18
    已采纳
     
    CREATE OR REPLACE VIEW STU_SCORES
    AS
    SELECT 学生.学号 as 学号,
           SUM(选课.课程得分) as 总分,
           COUNT(*) as 课程数 ,
           round(AVG(选课.课程得分),3) as 平均分,
           SUM( case when  选课.课程得分 >=60 then   课程.学分  else 0  end ) as 总学分
    FROM 选课,学生,课程 
    WHERE 选课.学号=学生.学号 AND 选课.课程号=课程.课程号 
    GROUP BY 学生.学号;
    
    
    评论
    解决 1 无用
    打赏 举报

相关推荐 更多相似问题