欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-11-14 16:44:46
sql必知必会笔记-分组数据   1. 使用group by子句创建分组   示例:   select vend_id, coun...

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 子句顺序

 

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