数据库的group 和group by 的用法?

最近学了数据库的group和groupby,但是对他们的用法比较模糊,所以想来了解下他们的具体用法和怎么用,希望越详细越好,谢谢!... 最近学了数据库的group 和group by ,但是对他们的用法比较模糊,所以想来了解下他们的具体用法和怎么用,希望越详细越好,谢谢! 展开
 我来答
小鱼的生活笔记
高能答主

2018-12-24 · 专注于生活领域的最新咨询和生活小细节
小鱼的生活笔记
采纳数:608 获赞数:411566

向TA提问 私信TA
展开全部

Group By语句从英文的字面意义上理解就是“根据(by)一定的规则进行分组(Group)”。

它的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理。注意:group by 是先排序后分组。

举例子说明:如果要用到group by 一般用到的就是“每这个字” 例如说明现在有一个这样的表:每个部门有多少人,就要用到分组的技术

selectDepartmentIDas“部门名称”。

COUNT(*) as“个数” from BasicDepartment group by DepartmentID

这个就是使用了group by +字段进行了分组,其中我们就可以理解为我们按照了部门的名称ID

DepartmentID将数据集进行了分组;然后再进行各个组的统计数据分别有多少;

如果不用count(*)而用类似下面的语法

selectDepartmentID,DepartmentNamefromBasicDepartmentgroupbyDepartmentID

将会出现错误

消息8120,级别16,状态1,第1行

选择列表中的列“BasicDepartment。DepartmentName”无效,因为该列没有包含在聚合函数GROUP BY 子句中。

扩展资料

结构化查询语言(Structured Query Language)简称SQL(发音:/ˈes kjuː ˈel/ "S-Q-L"),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名

结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式。

所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。

ZESTRON
2024-09-04 广告
表面污染分析包括评估表面上存在的颗粒、残留物或物质。通过利用显微镜、光谱学和色谱法等技术,分析人员可以识别和表征污染物,以确定其成分和来源。这种分析在电子、制药和制造等各个行业中至关重要,以确保产品质量、性能和安全性。了解表面污染有助于实施... 点击进入详情页
本回答由ZESTRON提供
匿名用户
2013-07-30
展开全部
这个问题...我们分开来说
首先我们从字面上的意思理解,group是 <组,聚合> 的意思,by是 <通过,由> 的意思,
group by就是 通过你所指定的列 进行分组,聚合, 比方说一个学校,由1 2 3三个班级,
每个班由不同的成员,但是他们的共同特性就是每个班里的每个人都属于1 2 3这其中的一个班级,
假设你要查某个班里所有成员的某个成绩总和,或平均分,你用select 分数,班级号 from 班级表 where 班级号,所得出来的只能是每个人的分数,不能返回一个你想要的值;
这个时候我们就需要用到group by了,首先我们先通过group by对你所要查询的资料集分组,
例如group by 班级号 这样你所查询的资料,就由原来所有的数据分组变成了3个,1 2 3;
然后假设你要得到某个班级里的某个成绩的总分,可以配合聚合函数使用,不知道你学到了聚合函数没有,
例如select sum(某科分数列),班级号 from 班级资料 where 你想知道的班级 group by 班级号,那么得出的就是你所需要的某个班某个科目的成绩总和

当然聚合函数不止sum(),还有avg()等等的

group by下还有很多子句,比如having,having你可以先理解成何where一样是查询的条件,但是它必须和group by同时使用,因为having是对group by分组后的数据进行筛选,可以和where联合起来使用,where group by having之间的关系是,先通过where筛选出数据,group by对得出的数据进行分组,having再对分组后的每一行进行筛选

举个例子,你要查及格人数超过10人的班级
select 班级号 from 表
where 成绩>=60
group by 班级号
having count(成绩) > 10

group by的一下注意事项,例如having必须和group by一起使用,还有你所查询的列必须是聚合函数或者你用于做分组条件的列等等

以上的回答仅仅是针对你所提出的问题做的回答,如果还有疑问可以继续补充问题,我会关注
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式