Поделиться через


Предложение HAVING (SQL Server Compact)

Задает условия поиска для группы или множества. Предложение HAVING обычно используется вместе с предложением GROUP BY.

Синтаксис

[ HAVING < search_condition > ] 

Аргументы

  • < search_condition >
    Задает условие поиска, удовлетворяющее данную группу. Условие поиска может использовать статистические и нестатистические выражения. В нестатистических выражениях можно использовать только столбцы, отмеченные в предложении GROUP BY как столбцы группирования. Причина в том, что сгруппированные столбцы имеют общие для всей группы свойства. Аналогичным образом, статистические выражения имеют общее для всей группы свойство. Условие поиска предложения HAVING выражает предикат над свойствами группы.

    Типы данных image и ntext нельзя использовать в предложении HAVING.

Замечания

Следующие запросы допустимы в SQL Server, но запрещены в SQL Server Compact и при выполнении возвращают следующую ошибку: «В статистических и групповых выражениях предложение HAVING может содержать только статистические функции и групповые выражения».

select count(*), c1+c2 from s1 group by c1+c2 having c1+c2 <10; 
select count(*), x from (select *, col1 + col2 as x from oj1) d group by x having x <4;

Однако их использование в SQL Server Compact допустимо, если вместо выражения используется простая переменная столбца, например (c1+c2).

Пример

В следующем примере возвращается список всех продуктов, для которых общее число > 50.

SELECT [Product ID], COUNT(*) AS Total FROM [Order Details] GROUP BY [Product ID] HAVING (COUNT(*) > 50)