group by语句,聚合函数与其他语句(关系,执行过程)
发布时间:2020-12-14 05:41:56 所属栏目:百科 来源:网络整理
导读:( 本文一切基于SQL SERVER 2008 R2 ) ? 先来看一个语句执行过程发生的错误提示: 消息 8120,级别 16,状态 1,第 2 行 选择列表中的列 'SC.CNO' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。 ???????? 元数据库为Stu_C,含有三个表,S、SC、C。执
(本文一切基于SQL SERVER 2008 R2) ? 先来看一个语句执行过程发生的错误提示: 消息 8120,级别 16,状态 1,第 2 行 选择列表中的列 'SC.CNO' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。 ???????? 元数据库为Stu_C,含有三个表,S、SC、C。执行的语句如下: ???????? use Stu_C select SNO,cno,sum(grade) sum_grade from SC where GRADE>=60 group by SC.SNO having count(CNO)>=4 order by sum_grade desc ?目的是检索选修4门课以上课程的学生总成绩(排除不及格的),并按总成绩的降序排列出来。根据提示我们容易知道,select语句中多了cno这个属性列。如果将其去掉执 行如下: use Stu_C select SNO,sum(grade) sum_grade from SC where GRADE>=60 group by SC.SNO having count(CNO)>=4 order by sum_grade desc 结果:
分析及结论:
一条SQL语句个子句的先后作用过程: ? from→where→group by→select(含聚合函数)→order by?????? 所以当select子句中含有sum(grade) sum_grade时,最后的排序子句可以是order by sum_grade desc。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |