SQL HAVING 子句 
 在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与 Aggregate 函数一起使用。 
 
 HAVING子句已添加到SQL中,因为WHERE关键字不能用于聚合函数。 
SQL HAVING 语法 
SELECT column_name(s) 
FROM table_name 
WHERE condition 
GROUP BY column_name(s) 
HAVING condition 
ORDER BY column_name(s); 
 
演示数据库 
 以下是罗斯文示例数据库中"Customers"表的选择: 
 
CustomerID        CustomerName        ContactName        Address        City        PostalCode        Country 
1 
 
Alfreds Futterkiste        Maria Anders        Obere Str. 57        Berlin        12209        Germany 
2        Ana Trujillo Emparedados y helados        Ana Trujillo        Avda. de la Constitución 2222        México D.F.        05021        Mexico 
3        Antonio Moreno Taquería        Antonio Moreno        Mataderos 2312        México D.F.        05023        Mexico 
4 
 
Around the Horn        Thomas Hardy        120 Hanover Sq.        London        WA1 1DP        UK 
5        Berglunds snabbköp        Christina Berglund        Berguvsvägen 8        Luleå        S-958 22        Sweden 
SQL HAVING示例 
 以下SQL语句列出了每个国家/地区的客户数量。只包括超过5位客户的国家/地区: 
 
SELECT COUNT(CustomerID), Country 
FROM Customers 
GROUP BY Country 
HAVING COUNT(CustomerID) > 5; 
 以下SQL语句列出每个国家的客户数量,从高到低排序(仅包括拥有超过5名客户的国家/地区): 
 
SELECT COUNT(CustomerID), Country 
FROM Customers 
GROUP BY Country 
HAVING COUNT(CustomerID) > 5 
ORDER BY COUNT(CustomerID) DESC; |