SELECT -HAVING (Transact-SQL)

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse Analytics分析平台系统(PDW)Microsoft Fabric 中的 SQL 分析终结点Microsoft Fabric 中的仓库Microsoft Fabric 预览版中的 SQL 数据库

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

Transact-SQL 语法约定

Syntax

[ HAVING <search condition> ]  

Arguments

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

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

Examples

以下示例使用简单 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 子句来对 SalesAmount 表中的每个 80000 检索超过 OrderDateKey 的总 FactInternetSales

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

See Also

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