创建分组
SELECT COUNT(*) AS num_prods
FROM Products
WHERE vend_id = 'DLL01';
注:
1、GROUP BY子句可以包含任意数目的列,即可以嵌套分组,数据将在最后指定的分组上进行汇总。
2、GROUP BY子句中列出的每一列都必须是检索列或有效的表达式(但不能是聚集函数)。如果在SELECT中使用表达式,则必须在GROUP BY子句中指定相同的表达式。不能使用别名。
过滤分组
SELECT cust_id, COUNT(*) AS orders
FROM Orders
GROUP BY cust_id
HAVING COUNT(*) >= 2;
HAVING和WHERE的差别:
WHERE在数据分组前进行过滤,HAVING在数据分组后进行过滤。
分组和排序
一般在使用GROUP BY子句时,应该也给出ORDER BY子句,千万不要仅依赖GROUP BY排序数据。