Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применимо к:SQL Server
База данных Azure SQL
Управляемый экземпляр Azure SQL
Azure Synapse Analytics
Система платформы аналитики (PDW)
Конечная точка SQL аналитики в Microsoft Fabric
Хранилище в Microsoft Fabric
База данных SQL в Microsoft Fabric
Определяет условие поиска для группы или статистического выражения. Можно использовать HAVING только с инструкцией SELECT . Как правило, используется HAVING с предложением GROUP BY . Если вы не используете GROUP BY, существует неявная агрегированная группа.
Соглашения о синтаксисе Transact-SQL
Syntax
[ HAVING <search condition> ]
Arguments
<search_condition>
Указывает один или несколько предикатов для групп и агрегатов, которые должны соответствовать группам. Дополнительные сведения об условиях поиска и предикаатах см. в разделе "Условие поиска".
В предложении нельзя использовать типы HAVINGданных текста, изображения и ntext.
Examples
Примеры кода в этой статье используют базу данных образца AdventureWorks2025 или AdventureWorksDW2025, которую можно скачать с домашней страницы образцов и проектов сообщества Microsoft SQL Server и.
А. Получение итогов для каждого заказа на продажу
В следующем примере используется HAVING предложение для получения итогового значения для каждой SalesOrderDetailSalesOrderID из таблицы, превышающей.$100000.00
USE AdventureWorks2025;
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;