SELECT - HAVING (Transact-SQL)

适用于: SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics 分析平台系统 (PDW) Microsoft Fabric 中的 SQL 分析端点 Microsoft Fabric 中的仓库

指定组或聚合的搜索条件。 HAVING 只能与 SELECT 语句一起使用。 HAVING 通常与 GROUP BY 子句一起使用。 如果未使用 GROUP BY,则会有隐式的单一、聚合组。

Transact-SQL 语法约定

语法

[ HAVING <search condition> ]  

参数

<search_condition> 指定需要组和/或聚合需要满足的一个或更多谓词。 有关搜索条件和谓词的详细信息,请参阅搜索条件 (Transact-SQL)

不能在 HAVING 子句中使用 text、image 和 ntext 数据类型 。

示例

以下示例使用简单 HAVING 子句从 SalesOrderID 表中检索超过 SalesOrderDetail 的每个 $100000.00 的总计。

USE AdventureWorks2022;  
GO  
SELECT SalesOrderID, SUM(LineTotal) AS SubTotal  
FROM Sales.SalesOrderDetail  
GROUP BY SalesOrderID  
HAVING SUM(LineTotal) > 100000.00  
ORDER BY SalesOrderID ;  

示例:Azure Synapse Analytics 和 Analytics Platform System (PDW)

以下示例使用 HAVING 子句来对 FactInternetSales 表中的每个 OrderDateKey 检索超过 80000 的总 SalesAmount

-- Uses AdventureWorks  
  
SELECT OrderDateKey, SUM(SalesAmount) AS TotalSales   
FROM FactInternetSales  
GROUP BY OrderDateKey   
HAVING SUM(SalesAmount) > 80000  
ORDER BY OrderDateKey;  

另请参阅

GROUP BY (Transact-SQL)
WHERE (Transact-SQL)