sql中order by和group by的区别

RT,请明确指出... RT,请明确指出 展开
 我来答
百度网友b29c4f3
推荐于2019-11-11 · TA获得超过3139个赞
知道答主
回答量:5
采纳率:100%
帮助的人:1.3万
展开全部

1、含义不一样:

英语字面上,Group By是分组的意思,Order By是按顺序的意思。

2、使用的函数不一样:

Group By是汇总查询,使用时至少需要一个分组标志字段,一般与聚合函数(比如sum合计、count计算行、avg平均)一起使用。例:select 门店,sum(营业额) as 总营业额 from 门店资料表 Group By 门店 

Order By是排序查询,用于对指定列结果集的排序,排序内容可以是数字或者文字,其中DESC是降序,ASC是升序。例:select * from 门店资料表 Order By 营业额 DESC

3、在SQL语句中的使用顺序不一样:

在SQL语句中如果既出现Group By也出现Order By,那么Group By 一定在 Order By的前面。例:select 门店,sum(营业额) as 总营业额 from 门店资料表 Group By 门店 Order By 总营业额 DESC

扩展资料

Order By与Group By的约束条件

Order By使用约束只需要使用where进行限制。

Group By使用约束需要与having联用,where和group by查询出来的分组经行过滤,查出满足条件的分组结果。它是一个过滤声明,是在查询返回结果集以后对查询结果进行的过滤操作。

注意:where条件用于group by之前,having条件则是用于group by 之后对结果进行筛选。

参考资料来源:百度百科-Order By

参考资料来源:百度百科-Group By

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
园林植物手册
高粉答主

推荐于2019-11-12 · 关注我不会让你失望
知道答主
回答量:191
采纳率:100%
帮助的人:9.2万
展开全部

一、适用范围不同:

order by 用于排序,一般与asc升序或desc降序一起使用。例如select * from 表A order by 列a。group by 用于分类汇总,一般与聚合函数(比如avg平均、sum合计、max最大、min最小、count计算行)一起使用。例如select 月份,sum(工资)as 总工资 from 工资表 group by 月份。

二、定义不同:

order by主要侧重许多数据的排序,例如按照大小顺序对数据进行排列,group by主要侧重许多数据的分组,例如按照性别、年龄、国家、学科等进行分组。

三、主要用途不同:

order by 是按表中某字段排列表中数据。group by 是按某些字段分类。例如,按年龄排序表中的记录就是select * from users order by age。按年龄分类表中数据就是sselect age,count(*) as number1 from users group by age。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zymcx999
推荐于2019-09-08 · TA获得超过3666个赞
知道答主
回答量:32
采纳率:0%
帮助的人:1.5万
展开全部

一、含义不同:

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

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

二、使用的函数不一样:

1.Group By是汇总查询,使用group by 的目的就是要将数据分类汇总。

2.Order By是排序查询,用于对指定列结果集的排序,排序内容可以是数字或者文字,其中DESC是降序,ASC是升序。

三、在SQL语句中的使用顺序不一样:

1.order by是按指定的列的升序或降序来给查询结果排序,它不需要查询结果中出现order by的栏位。

2.更改Order by里的栏位只会影响查询结果的顺序,而不影响查询出的记录总数,和每条记录的内容。

3.group by是按指定的列对满足Where条件的所有记录分组,并对组内的一些数值型栏位计算出每组的一个统计指标。

4.但是更改Group by的栏位,会对查询得到的记录数量,以及各个汇总函数的结果造成影响。

5.在SQL语句中如果既出现Group By也出现Order By,那么Group By 一定在 Order By的前面。

扩展资料:

GROUP BY 和 ORDER BY一起使用条件:

GROUP BY 和 ORDER BY一起使用时,ORDER BY要在GROUP BY的后面。

group by a,b,c       则a,b,c三个字段是按照先按a字段对数据行进行排序,再按b字段对那些字段a为同一个值的数据行进行排序,再再按c字段对那些字段a为同一个值且字段b为同一个值的数据行进行排序。

参考资料:

百度百科-order by

百度百科-group by

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友389bd4a
高粉答主

推荐于2019-10-24 · 说的都是干货,快来关注
知道答主
回答量:44
采纳率:100%
帮助的人:1.1万
展开全部

1、意思不一样。

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

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

2、排序方式不一样。

order by是指按字段排序;

group by是指按字段分类 。

3、sql命令格式优先顺序不一样。

order by要滞后;

group by 要优先。

4、更改栏位是否影响顺序。

order by不需要查询结果中出现order by的栏位,更改Order by里的栏位只会影响查询结果的顺序,而不影响查询出的记录总数,和每条记录的内容。

group by对查询结果有个要求,更改Group by里栏位的顺序不会对查询结果有任何影响, 但是更改Group by的栏位,会对查询得到的记录数量,以及各个汇总函数的结果造成影响。 

5、用法不一样。

order by是按指定的列的升序或降序来给查询结果排序。

group by是按指定的列对满足Where条件的所有记录分组,并对组内的一些数值型栏位计算出每组的一个统计指标,如求和、求个数、求平均值、求最大值、求最小值……

6、运算结果不一样。 

order by:USE pubsGOSELECT type, SUM(price), SUM(advance)FROM titlesGROUP BY typeORDER BY typeGO

结果:

type ------------ -------------------------- -------------------------- business 54.92 25,125.00 mod_cook 22.98 15,000.00 popular_comp 42.95 15,000.00 psychology 67.52 21,275.00 trad_cook 47.89 19,000.00 UNDECIDED (null) (null) (6 row(s) affected)COUNT

group by:store_name Sales Date Los Angeles $1500 Jan-05-1999 San Diego $250 Jan-07-1999 Los Angeles $300 Jan-08-1999 Boston $700 Jan-08-1999  SELECT store_name, SUM(Sales)    FROM Store_Information GROUP BY store_name   

结果:   

store_name SUM(Sales) Los Angeles $1800 San Diego $250 Boston $700

7、适用语境不一样。

order by 子名能用于查找组记录特征和某条记录的详细信息。

group by 子句只能用于查找组记录特征,但不能查找某条记录的详细信息。 

8、使用的函数不一样。

order by子句中的列必须包含在聚合函数或 GROUP BY 子句中。

group by 子句中可使用的函数AVG()  、MIN() 、 MAX()  、SUM() 、COUNT() 。

参考资料来源:百度百科—SQL ORDER BY

参考资料来源:百度百科—GROUP BY

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
初晴喵咪
推荐于2019-09-24 · TA获得超过1.1万个赞
知道答主
回答量:162
采纳率:37%
帮助的人:8.7万
展开全部

1、order by 从英文里理解就是行的排序方式,默认的为升序。

group by 从英文里理解就是分组。group by语句用于结合合计函数,根据一个或多个列对结果集进行分组。

2、order by 后面必须列出排序的字段名,可以是多个字段名。

group by 必须有“聚合函数”来配合才能使用,使用时至少需要一个分组标志字段。

group by 有一个原则,就是 select 后面的所有列中,没有使用聚合函数的列,必须出现在 group by 后面。

3、group by 比order by先执行,order by不会对group by 内部进行排序,如果group by后只有一条记录,那么order by 将无效。

4、如果声明了 GROUP BY 子句,输出就分成匹配一个或多个数值的不同组里。 如果出现了 HAVING 子句,那么它消除那些不满足给出条件的组。

如果声明了 ORDER BY 子句,那么返回的行是按照指定的顺序排序的。 如果没有给出 ORDER BY,那么数据行是按照系统认为可以最快生成的方法给出的。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式