SQL 必知必会·笔记<8>分组数据
2013-08-25 16:54
302 查看
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 必知必会·笔记<2>检索和排序数据
- SQL 必知必会·笔记<3>过滤数据
- SQL 必知必会·笔记<13>插入数据
- SQL 必知必会·笔记<14>更新和删除数据
- SQL 必知必会·笔记<7>汇总数据——使用聚合函数
- SQL 必知必会·笔记<4>使用通配符过滤数据
- SQL 学习笔记<五> 数据更新
- SQL 必知必会·笔记<17>使用存储过程
- SQL 必知必会·笔记<10>联结表
- SQL 必知必会·笔记<1>了解SQL
- SQL 必知必会·笔记<19>使用游标
- SQL 必知必会·笔记<12>组合查询
- SQL 必知必会·笔记<9>使用子查询
- SQL 必知必会·笔记<20>高级SQL特性
- SQL 必知必会·笔记<16>使用视图
- SQL 必知必会·笔记<5>创建计算字段
- SQL 必知必会·笔记<11>创建高级联结
- SQL 必知必会·笔记<15>创建和操纵表
- SQL 必知必会·笔记<18>管理事务处理
- java 从零开始,学习笔记之基础入门<SQL_Server_视图_函数_存储过程_触发器等>(二十三)