having只能在group之后使用,对分组的结果进行筛选(having的前提是分组)
where在group by之后
在执行where之后返回一个结果集----使用group by分组----select执行每组的条件------having筛选---排序
where后的条件不可以使用聚合函数(avg,sum,count,min)having可以判断值的条件
例子:
由高到低,显示平均分在70的学生姓名与平均分(在计算平均分之前不包括60分与JR的成绩)
select s_name,avg(score) from student
where score>=60 and s_name!="JR"'
group by s_name
having avg(s_name)>=70
order by avg(s_sname) desc
on where join
on后面是连接条件,两个表的关系遵循的原则 表A [left] join 表B on(条件,可加where)
where后为筛选条件,结果进行过滤