Freigeben über


SELECT – HAVING (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankVerwaltete Azure SQL-InstanzAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL-Analyseendpunkt in Microsoft FabricLagerhaus in Microsoft FabricSQL-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> ]  

Arguments

<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.

Examples

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;  

Siehe auch

GRUPPIEREN NACH (Transact-SQL)
WO (Transact-SQL)