光球层上的黑子 2021-11-03 14:41 采纳率: 75%
浏览 23
已结题

一个 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条回答 默认 最新

  • 关注
     
    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 学生.学号;
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月11日
  • 已采纳回答 11月3日
  • 创建了问题 11月3日