📅  最后修改于: 2023-12-03 15:20:18.146000             🧑  作者: Mango
在使用SQLite进行数据库查询时,我们可以使用HAVING子句来过滤GROUP BY子句分组后的结果。
HAVING子句的基本语法如下:
SELECT column_name1, column_name2, ...
FROM table_name
GROUP BY column_name1, column_name2, ...
HAVING condition;
column_name1
, column_name2
, ...:需要查询的列名。table_name
:查询的表名。GROUP BY column_name1, column_name2, ...
:按指定的列对结果进行分组。condition
:HAVING子句中的条件,用于过滤GROUP BY子句分组后的结果。现在我们有一个表students
,表中包含每个学生的姓名、班级、课程名以及成绩。我们要查询每个班级的平均成绩,并只返回平均成绩大于等于80分的班级。
SELECT class, AVG(score) AS avg_score
FROM students
GROUP BY class
HAVING avg_score >= 80;
以上查询语句中,我们首先按班级进行分组,然后使用AVG函数求出每个班级的平均成绩。最后使用HAVING子句过滤出平均成绩大于等于80分的班级。
having avg_score >= 80
,而应该使用having AVG(score) >= 80
。HAVING子句是用于过滤GROUP BY子句分组后结果的非常有用的功能。我们可以利用HAVING子句来筛选出符合特定条件的分组结果。