where 与 having只能在group by分组中同时出现。where子句的作用是在对查询结果进行分组之前,对不符合where条件的记录行过滤掉。即在分组之前过滤掉数据,而且where条件中不能包含聚合函数,使用聚合函数过滤特定的数据行;having子句的作用在查询的结果进行分组之后执行的,即在分组之后过滤数数据,条件中经常包含聚合函数,使用having条件过滤出特定的组,也可以使用多个分组标准进行分组。
其实,可以根据sql的执行顺序来进行区分。
select Name,sum(Score) 3 from Scores 1 where Score>80 2 group by Name 4 having sum(Score)>250 5
posted on
浙公网安备 33010602011771号