HAVING 子句
在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。
SQL HAVING 语法
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name
HAVING aggregate_function(column_name) operator value
比如有学生表:
CREATE TABLE `student` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) DEFAULT NULL,
`course` varchar(20) DEFAULT NULL,
`score` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=gb2312;
数据:
insert into `student`(`id`,`name`,`course`,`score`) values (1,'张三','语文',80);
insert into `student`(`id`,`name`,`course`,`score`) values (2,'张三','数学',90);
insert into `student`(`id`,`name`,`course`,`score`) values (3,'张三','英语',80);
insert into `student`(`id`,`name`,`course`,`score`) values (4,'李四','语文',85);
insert into `student`(`id`,`name`,`course`,`score`) values (5,'李四','数学',86);
insert into `student`(`id`,`name`,`course`,`score`) values (6,'李四','外语',60);
insert into `student`(`id`,`name`,`course`,`score`) values (7,'王五','语文',90);
insert into `student`(`id`,`name`,`course`,`score`) values (8,'王五','数学',88);
insert into `student`(`id`,`name`,`course`,`score`) values (9,'王五','英语',90);
题目:统计学生成绩大于240分的学生姓名
SQL:
select s.name from student as s group by s.name having sum(s.score) > 240;
分享到:
相关推荐
本文将深入探讨SQL中的WHERE子句和HAVING子句,这两种子句在查询语句中扮演着重要角色。 WHERE子句是SQL查询语句的基础部分,用于在检索数据时设定条件。它在SELECT语句中使用,对查询结果进行筛选,只返回满足特定...
基础语法包括指定列名、表名,使用WHERE子句过滤记录,GROUP BY子句进行分组,以及HAVING子句过滤分组后的结果。 - **FROM子句**:指定要查询的数据源,可以是单个表,也可以是多个表通过JOIN操作连接。 - **WHERE...
### T-SQL编程入门(SQL Server) #### 一、T-SQL的组成 T-SQL (Transact-SQL) 是 Microsoft SQL Server 使用的一种扩展版本的 SQL 语言,它提供了额外的功能来增强 SQL 的功能,使开发者能够更高效地管理和操作...
### 精细化数据筛选:HAVING 子句在 SQL 中的应用 SQL(Structured Query Language,结构化查询语言)作为一种核心的语言,在管理和操作关系型数据库方面发挥着至关重要的作用。SQL 不仅支持基本的数据检索、插入、...
这里使用到了`GROUP BY`、`SUM`、`AVG`、`COUNT`、`MAX`和`MIN`等聚合函数来计算每个学生的总分、平均分、选课数量以及分数的最大最小值,并通过`HAVING`子句来限定只返回那些平均分大于70的学生信息。 **知识点...
- **GROUP BY和HAVING子句**:用于对数据进行分组和过滤,比如按年级分组并找出平均成绩超过90分的班级。 - **ORDER BY子句**:用于排序结果,如`ORDER BY Name ASC`按名字升序排列,`DESC`表示降序。 2. **SQL...
- **HAVING子句:** 对GROUP BY的结果进行过滤,如`HAVING COUNT(*) > 10`。 #### 九、表的联合 - **在一个SELECT语句中使用多个表:** 通过INNER JOIN、LEFT JOIN、RIGHT JOIN等方式连接多个表。 - **等值联合:*...
- 使用`WHERE`子句对查询结果进行条件过滤,例如筛选出平均成绩大于70分、学过特定老师课程或未达到一定选课数的学生。 - 使用`HAVING`子句在`GROUP BY`后的分组结果上进行过滤,例如找出选课数小于等于3的学生。 ...
- 这个查询使用了多个聚合函数(`AVG()`, `MAX()`, `MIN()`, `COUNT()`)来获取每门课程的成绩统计信息。 #### 二、连接查询 **知识点13:简单连接查询** - **SQL语句**: `SELECT 姓名, 成绩 FROM 学生, 选课 WHERE...
而例7-28则使用HAVING子句筛选平均成绩大于85的学生学号和平均成绩。 在实际应用中,HAVING子句可以结合AND、OR或NOT运算符来处理复杂的条件组合,如例7-28所示,该例同时满足了选课超过三门和所有课程及格的条件,...
你可以根据需要选择一个或多个列,使用WHERE子句过滤结果,GROUP BY进行数据分组,HAVING来筛选分组后的结果,以及ORDER BY对结果进行排序。更进一步,还可以使用JOIN操作连接不同的表,获取更复杂的数据视图。 2. ...
在SQL查询中,GROUP BY和HAVING子句是数据分析和聚合操作的核心部分,它们帮助我们对数据进行分组和过滤,以获得更有意义的结果。在深入理解这两个子句之前,我们首先需要了解聚合函数,如SUM、COUNT、MAX和AVG等。 ...
可以使用WHERE子句过滤结果,GROUP BY和HAVING子句进行分组和条件筛选,ORDER BY子句对结果进行排序。 2. **联接操作**: 包括INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL JOIN,用于合并多个表的数据。 3. **子查询*...
#### 十一、HAVING子句 **定义与作用:** - `HAVING` 子句与 `GROUP BY` 配合使用,用于过滤分组后的结果集。 - **基本语法**: ```sql SELECT column_name, aggregate_function(column_name) FROM table_name ...
- **查询所有课程的成绩都大于60分的学生的平均分最高的学生信息**:使用子查询过滤出符合条件的学生,然后求平均分。 - 示例代码: ```sql SELECT 学号, AVG(成绩) AS 平均分 FROM 选课 GROUP BY 学号 HAVING...
### MySQL中的HAVING子句详解 #### 聚合函数简介 在深入探讨`HAVING`子句之前,首先需要了解SQL中的聚合函数。聚合函数是SQL语言中一种特殊的功能,用于处理多条记录并返回单个结果。常见的聚合函数包括: - **SUM*...
- **分组和汇总**:介绍GROUP BY子句的使用方法,以及如何结合HAVING子句进行更精细的数据筛选。 - **窗口函数**:解释OVER子句的作用,展示如何利用窗口函数进行排名、累积总和等复杂计算。 ##### 3. 查询优化与...
- `HAVING` 子句用于筛选聚合后的结果,这里的条件是平均成绩大于60分。 ### 6. 插入数据及查询至少选了两门课程的学生 ```sql INSERT INTO t_score VALUES (5, 1, 88); INSERT INTO t_student VALUES (5, 'John', ...
#### HAVING子句 `HAVING`子句则是在执行完分组和聚合操作之后对结果集进行进一步的过滤。它通常与`GROUP BY`子句一起使用,用来筛选聚合后的结果。 **特点:** 1. **作用于分组后的结果集**:`HAVING`子句是基于...