更新时间:2022-12-07 GMT+08:00
HAVING子句嵌套子查询
功能描述
在HAVING子句中嵌套子查询,子查询结果将作为HAVING子句的一部分。
语法格式
1 2 3 |
SELECT [ALL | DISTINCT] attr_expr_list FROM table_reference GROUP BY groupby_expression HAVING aggregate_func(col_name) operator (sub_query); |
关键字
- ALL:返回重复的行。为默认选项。其后只能跟*,否则会出错。
- DISTINCT:从结果集移除重复的行。
- groupby_expression:可以是单字段,多字段,也可以是聚合函数,字符串函数等。
- operator:此操作符包含等式操作符与不等式操作符,及IN,NOT IN操作符。
注意事项
- 所要查询的表必须是已经存在的表,否则会出错。
- 此处的sub_query与聚合函数的位置不能左右互换。
示例
对表student_info按字段name进行分组,计算每组中记录数,若其记录数等于子查询中表course_info的记录数,返回表student_info中字段name等于表course_info字段name的记录数。
1 2 3 |
SELECT name FROM student_info GROUP BY name HAVING count(name) = (SELECT count(*) FROM course_info); |
父主题: 子查询