Freigeben über


SELECT – HAVING (Transact-SQL)

Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL-Analyseendpunkt in Microsoft Fabric Warehouse in Microsoft Fabric SQL-Datenbank in Microsoft Fabric

Gibt eine Suchbedingung für eine Gruppe oder ein Aggregat an. HAVING kann nur mit der SELECT-Anweisung verwendet werden. HAVING wird in der Regel mit einer GROUP BY-Klausel verwendet. Wenn GROUP BY nicht verwendet wird, gibt es eine implizite einzelne, aggregierte Gruppe.

Transact-SQL-Syntaxkonventionen

Syntax

[ HAVING <search condition> ]  

Argumente

<search_condition> gibt ein oder mehrere Prädikate für Gruppen und Aggregate an, die erfüllt werden müssen. Weitere Informationen zu Suchbedingungen und Prädikaten finden Sie unter Suchbedingung (Transact-SQL).

Die Datentypen text, image und ntext können in einer HAVING-Klausel nicht verwendet werden.

Beispiele

Im folgenden Beispiel, in dem eine einfache HAVING-Klausel verwendet wird, werden die Gesamtsummen für SalesOrderID aus der SalesOrderDetail-Tabelle abgerufen, die $100000.00 überschreiten.

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

Beispiele: Azure Synapse Analytics und Analytics-Plattformsystem (PDW)

Im folgenden Beispiel wird eine HAVING-Klausel zum Abrufen der Summe von SalesAmount verwendet, die 80000 für alle OrderDateKey-Werte aus der FactInternetSales-Tabelle überschreiten.

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

Weitere Informationen

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