SQL必知必会笔记-分组数据

sql必知必会笔记-分组数据

 

1. 使用group by子句创建分组

 

示例:

 

select vend_id, count(*) as num_prods
from products
group by vend_id;

 

 

注意

 

group by 子句可以包含任意数目的列,因而可以对分组进行嵌套,更细致地进行数据分组。

如果分组列中包含具有null 值的行,则null 将作为一个分组返回。如果列中有多行null 值,它们将分为一组。

group by 子句必须出现在where 子句之后,order by 子句之前。

 

2. 使用having过滤分组

 

除了能用group by 分组数据外,sql 还允许过滤分组,规定包括哪些 分组,排除哪些分组

 

示例:

select cust_id, count(*) as orders
from orders
group by cust_id
having count(*) >= 2;

 

 

说明:having 和where 的差别

 

where 在数据分组前进行过滤,having 在数 据分组后进行过滤。这是一个重要的区别,where 排除的行不包括在 分组中。这可能会改变计算值,从而影响having 子句中基于这些值 过滤掉的分组。

 

3. 分组和排序

 

提示:不要忘记order by

 

一般在使用group by 子句时,应该也给出order by 子句。这是保 证数据正确排序的唯一方法。千万不要仅依赖group by 排序数据。

 

4. select 子句顺序

 

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐