sum(score)的优先级高还是having s>490高
时间: 2023-06-17 10:04:13 浏览: 43
在 SQL 中,`HAVING` 子句在 `SELECT` 语句执行完后才会进行筛选,而 `SUM` 函数是在 `SELECT` 语句中进行计算的。因此,`SUM(score)` 的优先级比 `HAVING s>490` 高。也就是说,先对所有数据进行求和操作,然后再对求和结果进行筛选,找出满足条件的数据。
相关问题
create view c_d_s as select si.s_id,s_name ,sum(score) s from department join class c on department.dept_id = c.dept_id join stu_info si on c.class_id = si.class_id join stu_score ss on si.s_id = ss.s_id where dept_name= '计算机系' and s_addr like '%广州%' group by si.s_id having s>490;
该 SQL 语句创建了一个名为 c_d_s 的视图,该视图包含了符合条件的学生信息。具体来说,这个视图中包含了学生的 ID、姓名以及总成绩(score)。这些信息来自于 department、class、stu_info 和 stu_score 四个表,其中 department 和 class 表用于获取计算机系的班级信息,stu_info 表用于获取学生的个人信息,stu_score 表用于获取学生的成绩信息。在这个 SQL 语句中,我们对这些表进行了 join 操作,并且使用了 where 子句和 like 运算符来筛选符合条件的学生信息。最后,我们使用了 group by 子句和 having 子句来对学生进行分组,并且筛选出总成绩大于 490 分的学生。通过创建这个视图,我们可以方便地查询符合条件的学生信息,而不需要每次都执行这个复杂的 SQL 语句。
round(sum(case when s_score>=60 then 1 else 0 end)/count(c_id),2)passRate,
这是一段 SQL 语句,用于计算某门课程的及格率。其中,s_score 表示学生成绩,c_id 表示课程编号。语句首先使用 case when 条件语句判断学生成绩是否大于等于 60 分,如果满足条件则返回 1,否则返回 0。然后使用 sum 函数计算及格的学生人数,除以 count 函数计算出总人数,最后使用 round 函数保留两位小数,得出及格率。