SELECT — HAVING (Transact-SQL)
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure конечной точке аналитики платформы Аналитики Azure Synapse Analytics (PDW) в Microsoft Fabric Хранилище в Microsoft Fabric
Определяет условие поиска для группы или статистического выражения. Предложение HAVING можно использовать только в инструкции SELECT. HAVING обычно используется с предложением GROUP BY. Если предложение GROUP BY не используется, имеется одна неявная агрегированная группа.
Соглашения о синтаксисе Transact-SQL
Синтаксис
[ HAVING <search condition> ]
Аргументы
<search_condition> задает один или несколько предикатов, которые должны выполняться для групп или агрегатов. Дополнительные сведения об условиях поиска и предикатах см. в статье Условие поиска (Transact-SQL).
Типы данных text, image и ntext нельзя использовать в предложении HAVING.
Примеры
В следующем примере, который использует простое предложение 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 и система платформы аналитики (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;