1、创建分组
示例:
根据vend_id分组显示
select vend_id, count(\*)
as num_prods
from products
group by vend_id
2、过滤分组(having)
利用分组过滤行数据,示例:
select cust_id, count(\)
as orders
from orders
group by cust_id
having count(\*) >= 2
该语句会根据cust_id进行分组并过滤出orders>=2的分组
3、having和where的区别:
where在数据分组前进行过滤,having在数据分组后进行过滤,这是一个重要的区别,where排除的行不包括在分组中,这可能会改变计算之,从而影响having子句中基于这些值过滤掉的分组。
4、select子句的顺序
子句 | 说明 | 是否必须使用 |
---|---|---|
SELECT | 要返回的列或表达式 | 是 |
FROM | 从中检索数据的表 | 尽在从表选择数据时使用 |
WHERE | 行级过滤 | 否 |
GROUP | 分组说明 | 仅在按组计算聚集时使用 |
HAVING | 组级过滤 | 否 |
ORDER BY | 输出排序顺序 | 否 |