order by 和 group by 的区别

如题所述

order by 和 group by的区别为:指代不同、侧重点不同、引证用法不同

一、指代不同

1、order by:排序依据。

2、group by:进行分组。

二、侧重点不同

1、order by:用来对数据库的一组数据进行排序。

2、group by:指定的规则对数据进行分组,所谓的分组就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理。

三、引证用法不同

1、order by:order作“次序,顺序”“治安,秩序”“整齐,有条理”解时,是不可数名词。作“订购,订货”“命令,嘱咐”“汇票,汇单”解时,是可数名词。

2、group by:group的基本意思是“群,团体,组类”,指由很多的人或物偶然或有意组成的一个有秩序、有组织的整体,有时也可指较小的“人群”,还可以指一个大型的商业机构,即“集团”或某种“类别”。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-07-25

order by 和 group by 的区别:

1,order by 从英文里理解就是行的排序方式,默认的为升序。 order by 后面必须列出排序的字段名,可以是多个字段名。

2,group by 从英文里理解就是分组。必须有“聚合函数”来配合才能使用,使用时至少需要一个分组标志字段。

注意:聚合函数是---sum()、count()、avg()等都是“聚合函数”

3,在sql命令格式使用的先后顺序上,group by 先于 order by。


在Sql中也可以说order by是按字段排序,group by 是按字段分类

通常order by 和group by 没有太多的关系,但是它们常常组合在一起用,完成分组加排序的功能。

如有下表:

执行这个语句是可以的:

如果执行下面语句就不行:

正确的应该是:


group by 的目的就是要将数据分类汇总。

如:

select 类别, sum(数量) as 数量之和 from A group by 类别

这就是简单Group By,返回结果会是分类汇总的结果。

第2个回答  2016-07-07
order by 以…排序
group by 以…分组
第3个回答  2016-07-08
select a.name, max(a.sex) from a group by a.name order by a.sex asc

group by 用来分组,order by 用来排序
第4个回答  2016-07-16
order by 排序查询、asc升序、desc降序
示例:
select * from 学生表 order by 年龄 查询学生表信息、按年龄的升序(默认、可缺省、从低到高)排列显示
也可以多条件排序、 比如 order by 年龄,成绩 desc 按年龄升序排列后、再按成绩降序排列

group by 分组查询、having 只能用于group by子句、作用于组内,having条件子句可以直接跟函数表达式。使用group by 子句的查询语句需要使用聚合函数。
示例:
select 学号,SUM(成绩) from 选课表 group by 学号 按学号分组、查询每个学号的总成绩

select 学号,AVG(成绩) from 选课表
group by 学号
having AVG(成绩)>(select AVG(成绩) from 选课表 where 课程号='001')
order by AVG(成绩) desc
查询平均成绩大于001课程平均成绩的学号、并按平均成绩的降序排列