适用于:SQL Server
Azure SQL 数据库
Azure SQL 托管实例
Azure Synapse Analytics
Microsoft Fabric中的SQL分析端点
Microsoft Fabric中的仓库
Microsoft Fabric中的SQL数据库
指定组或聚合的搜索条件。 只能与语句一 HAVING 起使用 SELECT 。 通常,与子句一HAVINGGROUP BY起使用。 不使用 GROUP BY时,会有一个隐式的聚合组。
Syntax
[ HAVING <search condition> ]
Arguments
<search_condition>
为组和聚合指定一个或多个组需要满足的谓词。 有关搜索条件和谓词的详细信息,请参阅 搜索条件。
不能在子句中使用文本、图像和 HAVING 数据类型。
Examples
本文中的代码示例使用AdventureWorks2025了 、 AdventureWorksDW2025或AdventureWorksLT2025示例数据库,您可以从 Azure Data SQL Samples Repository 的 GitHub 仓库下载。
答: 检索每个销售订单的总计
下面的示例使用一个HAVING子句从超过SalesOrderID的表中检索每个SalesOrderDetail子句的$100000.00总数。
USE AdventureWorks2025;
GO
SELECT SalesOrderID,
SUM(LineTotal) AS SubTotal
FROM Sales.SalesOrderDetail
GROUP BY SalesOrderID
HAVING SUM(LineTotal) > 100000.00
ORDER BY SalesOrderID;
示例:Azure Synapse Analytics
B. 检索超过给定值的总销售额
以下示例使用 HAVING 子句来对 SalesAmount 表中的每个 80000 检索超过 OrderDateKey 的总 FactInternetSales。
-- Uses AdventureWorks
SELECT OrderDateKey,
SUM(SalesAmount) AS TotalSales
FROM FactInternetSales
GROUP BY OrderDateKey
HAVING SUM(SalesAmount) > 80000
ORDER BY OrderDateKey;