SELECT – HAVING záradék (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példányAzure Synapse AnalyticsSQL Analytics-végpont a Microsoft FabricbenRaktár a Microsoft FabricbenSQL-adatbázis a Microsoft Fabricben

Egy csoport vagy összesítés keresési feltételét adja meg. Csak az HAVING utasítással használhatóSELECT. Általában egy HAVING záradékot használGROUP BY. Ha nem használja GROUP BY, van egy implicit, összesített csoport.

Transact-SQL szintaxis konvenciók

Syntax

[ HAVING <search condition> ]

Arguments

<search_condition>

Egy vagy több predikátumot ad meg a csoportoknak és összesítéseknek, amelyeket a csoportoknak teljesíteniük kell. A keresési feltételekről és predikátumokról további információt a Keresési feltétel című témakörben talál.

A záradékban nem használható a szöveg, a kép és az HAVING adattípus.

Examples

A cikkben szereplő kódminták az AdventureWorks2025 or AdventureWorksDW2025 minta adatbázist használják, amelyet letölthetsz az Azure Data SQL Samples Repository GitHub repository-jából.

A. Az egyes értékesítési rendelések összegének lekérése

Az alábbi példa egy záradékot HAVING használ az egyes SalesOrderID táblák összegének lekérésére a SalesOrderDetail fenti $100000.00táblázatból.

USE AdventureWorks2025;
GO

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

Példák: Azure Synapse Analytics

B. Adott értéket meghaladó teljes értékesítés lekérése

Az alábbi példa egy záradékot HAVING használ az egyes SalesAmount tábláknál nagyobb 80000 összeg OrderDateKey lekéréséreFactInternetSales.

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