如何在数据库中使用group by方法

分类:编程技术 时间:2024-02-20 15:24 浏览:0 评论:0
0
今天就和大家聊聊如何在数据库中使用group by方法。很多人可能对此还不是很了解。为了让大家更好的了解,小编为大家总结了以下内容。希望您能从本文中有所收获。

分组依据

概念

分组依据语句来自英文字面意思是“按照(by)一定的规则分组(Group)”。
功能:通过一定的规则将一个数据集划分为若干个小区域,然后对几个小区域进行数据处理。

注意:group by是先排序再分组!

语法

SELECT 表达式1, 表达式2, ... 表达式_n, 聚合函数 (聚合表达式)FROM 表[WHERE 条件]GROUP BY 表达式 1、表达式 2、... 表达式_n[ORDER BY 表达式 [ ASC | DESC ]];

语法说明

expression1, expression2,... expression_n
表达式未封装在聚合函数中,必须包含在 SQL 语句末尾的 GROUP BY 子句中。

aggregate_function
这是一个聚合函数,例如 SUM、COUNT、MIN、MAX 或 AVG 函数。

aggregate_expression
这是将使用aggregate_function 的列或表达式。

tables
您希望从中检索记录的表。 FROM 子句必须至少包含一个表。

哪里
可选。这些是记录必须满足才能被选择的条件。

ORDER BY 表达式
可选。用于对结果集中的记录进行排序的表达式。如果提供多个​​表达式,值应该用逗号分隔。

ASC
可选。 ASC 按表达式对结果集进行升序排序。如果未提供修饰符,这是默认行为。

DESC
可选。 DESC 按表达式对结果集进行降序排序命令。

常用聚合函数

count()计数

sum()求和

avg()平均值

max()最大值

min()最小值

示例

< p >我们以下面两个表为例:

学生表(Student)

< td >1
ID学生姓名学生班级ID
1小明
2小红2
3 小兰3
4小鹿2< /td>
5小子1

类表(Class)

ClassIDClassName
1软件类别 1
2软件类别 2
3软件三班

计算每个班有多少学生?

SELECT cl.ClassName,COUNT(stu.StudentClassID) AS StudentNumFROM Student Stu LEFT JOIN class cl ON Stu.StudentClassID = cl.ClassIDGROUP BY cl.ClassName;

计算结果:

ClassNameStudentName
软件1 类2
软件 2 类2
软件3类1

HAVING

HAVING语句通常结合使用配合GROUP BY语句对GROUP BY语句返回的记录集进行过滤。

HAVING语句的存在弥补了WHERE关键字不能与聚合结合使用的缺点

通俗地说:WHERE过滤行,HAVING过滤组

语法

SELECT 表达式 1, 表达式 2, ... 表达式_n, 聚合函数 (聚合表达式)FROM 表[WHERE 条件]GROUP BY 表达式1, 表达式2, ... 表达式_n

语法说明strong>

HAVING 条件这是另一个条件,仅应用于聚合结果以限制返回的行组。只有那些条件评估为 TRUE 的组才会包含在结果集中。

示例

利用上面两个数据表

查询编号为大于2级?

SELECT cl.ClassName,COUNT(stu.StudentClassID) AS StudentNumFROM 学生 LEFT JOIN 班级 cl ON Stu.StudentClassID = cl.ClassIDGROUP BY cl.ClassNameHAVING COUNT (stu.StudentClassID)>=2;

计算结果:

td>
ClassNameStudentName < /th>
软件类别 12
软件类别 22
软件类别 22
软件类别 222

摘要

当group by与aggr一起使用时egate函数,作用是分组后进行计算

当group by与having配合使用时,作用是分组后进行过滤,得到符合条件的分组的返回结果。

having和where的区别:where过滤行,having过滤组

看完上面的内容,你将会更好的理解如何使用按数据库中的方法分组?如果您想了解更多知识或相关内容,请关注行业资讯频道。感谢您的支持。

1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > 如何在数据库中使用group by方法

用户评论