SQL HAVING 子句用于从组中筛选数据,它与 SELECT 子句的 WHERE 子句非常相似,但是它们之间有一个重要的区别。WHERE 子句用于在查询中过滤行,而 HAVING 子句用于在分组后过滤组。
HAVING 子句必须与 GROUP BY 子句一起使用,因为它引用列的分组。如果不使用 GROUP BY,HAVING 将忽略请求并生成错误。
SELECT column_name(s) FROM table_name WHERE condition GROUP BY column_name(s) HAVING condition;
HAVING 语法允许我们在 SELECT 语句中使用聚合函数(例如 COUNT、MAX、MIN、SUM 等)。它允许我们根据聚合函数的值来过滤行。例如,我们可以使用 HAVING 条件来显示所有具有大于 10 的总销售额的客户。
SELECT CustomerName, SUM(OrderPrice) AS TotalSales FROM Orders GROUP BY CustomerName HAVING SUM(OrderPrice) > 10;
此外,HAVING 还允许我们对列进行条件过滤(就像 WHERE 子句一样)。例如,我们可以使用 HAVING 条件来显示所有具有大于 10 的总销售额的客户名称开头字母“A”的客户。
SELECT CustomerName, SUM(OrderPrice) AS TotalSales FROM Orders GROUP BY CustomerName HAVING SUM(OrderPrice) > 10 AND CustomerName LIKE 'A%';
在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与 Aggregate 函数一起使用。
在本教程中,我们将使用众所周知的 Northwind 样本数据库。
下面是选自 "Orders" 表的数据:
OrderID | CustomerID | EmployeeID | OrderDate | ShipperID |
---|---|---|---|---|
10248 | 90 | 5 | 1996-07-04 | 3 |
10249 | 81 | 6 | 1996-07-05 | 1 |
10250 | 34 | 4 | 1996-07-08 | 2 |
选自 "Employees" 表的数据:
EmployeeID | LastName | FirstName | BirthDate | Photo | Notes |
---|---|---|---|---|---|
1 | Davolio | Nancy | 1968-12-08 | EmpID1.pic | Education includes a BA.... |
2 | Fuller | Andrew | 1952-02-19 | EmpID2.pic | Andrew received his BTS.... |
3 | Leverling | Janet | 1963-08-30 | EmpID3.pic | Janet has a BS degree.... |
现在我们想要查找订单总数少于 2000 的客户。
我们使用下面的 SQL 语句:
下面的 SQL 语句查找注册超过 10 个订单的员工:
现在我们想要查找员工 "Davolio" 或 "Fuller" 是否拥有超过 25 个订单。
我们在 SQL 语句中增加一个普通的 WHERE 子句:
有一些选项可以从Node.js应用程序与MySQL进行交互。在本教程中,我们将向您展示如何使用名为mysqljs/mysql的MySQL的node.js驱动...
MySQLdb 是用于Python链接Mysql数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL C API 上建立的。如何安装MySQ...
我们知道从MySQL表中使用SQL SELECT 语句来读取数据。如果我们需要对读取的数据进行排序,我们就可以使用MySQL的 ORDER BY ...
MySQL中你可以使用SELECT...INTO OUTFILE语句来简单的导出数据到文本文件上。 使用 SELECT ... INTO OUTFILE 语句导...
1、从左开始截取字符串left(str, length)说明:left(被截取字段,截取长度)例:select left(content,200) as abst...
在你连接到 MySQL 数据库后,可能有多个可以操作的数据库,所以你需要选择你要操作的数据库。从命令提示窗口中选择MySQL数据库在...
Ubuntu是一个比较流行的Linux操作系统,不仅简单易用,而且和Windows相容性非常好。那么在ubuntu下如何安装mysql数据库呢?在Ubu...