我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

今天就跟大家聊聊有关如何在数据库中使用group by方法,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

Group By

概念

Group By语句从英文的字面意义上理解就是“根据(by)一定的规则进行分组(Group)”。
作用:通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理。

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

语法

SELECT expression1, expression2, ... expression_n, 
 aggregate_function (aggregate_expression)
FROM tables
[WHERE conditions]
GROUP BY expression1, expression2, ... expression_n
[ORDER BY expression [ ASC | DESC ]];

语法说明

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

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

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

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

  • where
     可选的。这些是要选择的记录必须满足的条件。

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

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

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

常用聚合函数

  • count() 计数

  • sum() 求和

  • avg() 平均数

  • max() 最大值

  • min() 最小值

举例

我们以下面两张表举例:

学生表(Student) 

IDStudentNameStudentClassID
1小明1
2小红2
3小兰3
4小吕2
5小梓1

班级表(Class)

ClassIDClassName
1软件一班
2软件二班
3软件三班

计算每个班都有多少学生?

SELECT cl.ClassName,COUNT(stu.StudentClassID) AS studentNum
FROM student stu LEFT JOIN class cl ON stu.StudentClassID = cl.ClassID
GROUP BY cl.ClassName;

计算结果:

ClassNameStudentName
软件一班2
软件二班2
软件三班1

HAVING

HAVING语句通常与GROUP BY语句联合使用,用来过滤由GROUP BY语句返回的记录集。

HAVING语句的存在弥补了WHERE关键字不能与聚合函数联合使用的不足。

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

语法

SELECT expression1, expression2, ... expression_n, 
  aggregate_function (aggregate_expression)
FROM tables
[WHERE conditions]
GROUP BY expression1, expression2, ... expression_n

语法说明

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

举例

采用上面两张数据表

查询学生人数大于2人的班级?

SELECT cl.ClassName,COUNT(stu.StudentClassID) AS studentNum
FROM student stu LEFT JOIN class cl ON stu.StudentClassID = cl.ClassID
GROUP BY cl.ClassName
HAVING COUNT(stu.StudentClassID)>=2;

计算结果:

ClassNameStudentName
软件一班2
软件二班2

小结

  • 当group by 与聚合函数配合使用时,功能为分组后计算

  • 当group by 与 having配合使用时,功能为分组后过滤,获得满足条件的分组的返回结果。

  • having与where区别:where过滤行,having过滤组

看完上述内容,你们对如何在数据库中使用group by方法有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

数据库中的group by怎么使用

在数据库中,GROUP BY子句用于根据一个或多个列对结果进行分组。它常用于与聚合函数一起使用,以便对每个组应用聚合函数。语法如下:```SELECT 列1, 列2, ... 列nFROM 表名WHERE 条件GROUP BY 列1, 列2
2023-08-30

数据库中group by怎么用

这篇文章将为大家详细讲解有关数据库中group by怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一. 概述group_by的意思是根据by对数据按照哪个字段进行分组,或者是哪几个字段进行分组。二
2023-06-22

SQL中Group By的使用方法是什么

在SQL中,GROUP BY语句用于将具有相同值的行分组在一起,并使用聚合函数(如SUM、COUNT、AVG等)对每个组进行计算。其基本语法结构如下:SELECT 列名1, 聚合函数(列名2)FROM 表名GROUP BY 列名1在上
SQL中Group By的使用方法是什么
2024-04-09

MySQL中的distinct与group by如何使用

这篇文章主要讲解了“MySQL中的distinct与group by如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL中的distinct与group by如何使用”吧!先说大
2023-07-05

MySQL中的distinct与group by比较使用方法

目录distinct的使用distinct用法distinct 多列去重group by的使用单列去重多列去重区别示例distinct和group by原理隐式排序先说大致的结论 :在语义相同,有索引的情况下:group by和 dist
2023-03-10

在 MySQL GROUP BY 子句中使用多列有何意义?

通过在 GROUP BY 子句中指定多个列,我们可以将结果集拆分为更小的组。 GROUP BY 子句中指定的列越多,组就越小。示例mysql> Select designation, YEAR(Doj), count(*) from emp
2023-10-22

MYSQL使用group by,如何查询出总记录数

比如有这样一条SQL,根据t.user_id,t.report_date两个字段统计这样前端页面能展示数据,但往往需要一个总记录数,在有分页的情况下用到一种解决方法是在外面套一层,然后对其count(*)SELECT COUNT(*) FROM (SELECT
MYSQL使用group by,如何查询出总记录数
2015-05-14

达梦数据库SQL查询报错不是 GROUP BY 表达式解决方法

达梦数据库SQL查询报错:不是 GROUP BY 表达式解决方法 1、前言 随着达梦数据库国产化率越来越高,很多如Oracle、Mysql、SQL Server逐步迁移到达梦数据库上来,但难免会有一些其它数据库独有的用法在达梦上会报错,但达
2023-08-30

如何在Android中使用SQLite数据库

本篇文章为大家展示了如何在Android中使用SQLite数据库,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。SQLite简介:SQLite是Android系统采用的一种开源的轻量级的关系型的数据库
2023-05-31

如何在 Golang 中使用数据库锁?

在 golang 中,可以使用 sync.mutex 或 database/sql 包中的 tx 实现数据库锁。sync.mutex 适用于非阻塞操作,而 tx 允许在事务中执行一系列操作,确保数据不会在事务提交之前被修改。如何在 Gola
如何在 Golang 中使用数据库锁?
2024-05-14

编程热搜

目录