在sql语句中,HAVING 子句允许指定条件来过滤将出现在最终结果中的分组结果。WHERE 子句在所选列上设置条件,而 HAVING 子句则在由 GROUP BY 子句创建的分组上设置条件。
下面是包含 HAVING 子句,where子句的 SELECT 语句的语法:
SELECT column1, column2
FROM table1, table2
WHERE [ conditions ]
GROUP BY column1, column2
HAVING [ conditions ]
ORDER BY column1, column2
比如这样一个表
sql语句select name,count(age),avg(age),sum(age) as 年龄总和 from student where class in ("6班","7班") group by name;
group by表示按指定列分组,配合着count(计数),avg(求平均值)等函数使用。in表示某字段值在哪几个,跟between某个值and另外一个值,表示在什么区间,两种介词用法是不同。
sql语句select name,count(age),avg(age),sum(age) as 年龄总和 from student where class in ("6班","7班") group by name having name>"aa";
having语句也是用来过滤结果,是跟在group by后面。
最后再加order by name desc,是按字段name降序排列。默认是升序。