SQL学习:八
2022/4/1 19:20:36
本文主要是介绍SQL学习:八,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
分组数据
1、数据分组
GROUP BY子句 :创建分组
①GROUP BY子句可以包含任意数目的列,因而可以对分组进行嵌套,更细致地进行数据分组。
②如果GROUP BY子句中嵌套了分组,数据将在最后指定的分组上进行汇总。
③GROUP BY子句中列出的每一列都必须是检索列或有效的表达式(但不能是聚集函数)。如果在SELECT中使用表达式,则必须在GROUP BY子句中指定相同的表达式。不能使用别名。
④大多数SQL不允许GROUP BY列带有长度可变的数据类型(如文本或备注型字段)。
⑤除聚集计算语句外,SELECT语句中的每一列都必须在GROUP BY子句中给出
⑥如果分组列中包含具有NULL值的行,则NULL将作为一个分组返回。如果列中有多行NULL值,他们将为一组。
⑦GROUP BY子句必须出现在WHERE子句之后,ORDER BY子句之前。
⑧SQL SERVER中支持GROUP BY子句中使用ALL子句,这个子句将返回所有分组。
SELECT vend_id,COUNT(*) AS num FROM Products GROUP BY vend_id;
2、过滤分组
HAVING 子句 :过滤分组 (可以理解为分组中的WHERE)。
WHERE过滤行。
WHERE在数据分组前进行过滤,HAVING在数据分组后进行过滤。
HAVING 支持所有的WHERE操作符。
SELECT cust_id,COUNT(*) AS orders FROM Orders GROUP BY cust_id HAVING COUNT(*)>=2; SELECT vend_id,COUNT(*) AS num FROM Products WHERE prod_price >=4 GROUP BY vend_id HAVING COUNT(*) >=2;
SELECT子句及其顺序
子句 | 说明 | 是否必须使用 |
---|---|---|
SELECT | 要返回的列或表达式 | 是 |
FROM | 从中检索数据的表 | 仅在从表选择数据时使用 |
WHERE | 行级过滤 | 否 |
GROUP BY | 分组说明 | 仅在按组计算聚集时使用 |
HAVING | 组级过滤 | 否 |
ORDER BY | 输出排序顺序 | 否 |
这篇关于SQL学习:八的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-05小米13T Pro系统合集:性能与摄影的极致融合,值得你升级的系统ROM
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求
- 2024-10-01使用 golang 将ETH账户的资产平均分散到其他账户
- 2024-10-01JWT用户校验课程:从入门到实践
- 2024-10-01Server Component课程入门指南