芝加哥位置在美国地图:sql中order by和group by的区别

来源:百度文库 编辑:神马品牌网 时间:2024/05/05 02:37:53
RT,请明确指出

order by 是按表中某字段排列表中数据。


group by 是按某些字段分类。

以下是详细区别:

1、排序方式不一样:

order by是指按字段排序;

group by是指按字段分类 。

2、命令格式优先顺序不一样:

order by要滞后;

group by要优先。

3、含义不一样:

Group By是分组的意思,Order By是按顺序的意思。

4、使用的函数不一样:

Group By是汇总查询,使用时至少需要一个分组标志字段,一般与聚合函数(比如sum合计、count计算行、avg平均)一起使用。

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

5、定义不一样:

order by主要侧重许多数据的排序,例如按照大小顺序对数据进行排列;

group by主要侧重许多数据的分组,例如按照性别、年龄、国家、学科等进行分组。

扩展资料:

SQL使用技巧代码大全:

1、编辑

1=1,1=2的使用在SQL语句组合时用的较多,“where 1=1”是表示选择全部 “where 1=2”全部不选。

如:if @strWhere !='begin

set @strSQL = 'select count(*) as Total from [' + @tblName + '] where ' + @strWhere

end else begin set @strSQL = 'select count(*) as Total from [' + @tblName + ']' end

set @strSQL='select count(*) as Total from tablename where 1+1'

if(@strWhere!='')

{set @strSQL=@strSQL+’and’+strWhere}

2、收缩数据库

(1)重建索引 :

DBCC REINDEX

DBCC INDEXDEFRAG

(2)收缩数据和日志:

DBCC SHRINKDB

DBCC SHRINKFILE

(3)压缩数据库:

dbcc shrinkdatabase(dbname)

(4)转移数据库给新用户以已存在用户权限:

exec sp_change_users_login 'update_one','newname','oldname' go

(5)检查备份集:

RESTORE VERIFYONLY from disk='E:\dvbbs.bak'

(6)修复数据库:

Alter DATABASE [dvbbs] SET SINGLE_USER GO

DBCC CHECKDB('dvbbs',repair_allow_data_loss) WITH TABLOCK GO

Alter DATABASE [dvbbs] SET MULTI_USER GO

参考资料来源:百度百科-SQL语句大全

百度百科-结构化查询语言

1、解释不同

order by是SQL语句中的关键字,用于对查询结果的排序。ORDER BY 语句用于对结果集进行排序,默认的为升序。

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

2、字段不同

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

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

3、sql命令格式优先顺序不同

group By关键字先对指定的分组条件将筛选得到的视图进行分组,将分组视图后不满足条件的记录筛选掉。

order By语句最后对视图进行排序,最终的结果就产生了。

扩展资料

order by和group by的用法示例

1、select * from 学生表 order by 年龄    

查询学生表信息、按年龄的升序(默认、可缺省、从低到高)排列显示。

2、select 学号,SUM(成绩) from 选课表 group by 学号  

按学号分组、查询每个学号的总成绩。

3、select 学号,AVG(成绩) from 选课表  group by 学号 having AVG(成绩)>(select AVG(成绩) from 选课表 where 课程号='001') order by AVG(成绩) desc

查询平均成绩大于001课程平均成绩的学号、并按平均成绩的降序排列。

参考资料来源:百度百科-order by

参考资料来源:百度百科-group by

一、含义不同

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

1、解释不同:

(1)order by是SQL语句中的关键字,用于对查询结果的排序。ORDER BY 语句用于对结果集进行排序,默认的为升序。

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

2、字段不同:

(1)order by是按字段排序,后面必须列出排序的字段名,可以是多个字段名。

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

3、sql命令格式优先顺序不同:

(1)group By关键字先对指定的分组条件将筛选得到的视图进行分组,将分组视图后不满足条件的记录筛选掉。

(2)order By语句最后对视图进行排序,最终的结果就产生了。

4、引用列名不同:

(1)order by语句中引用列名可以使用IDE。

(2)group by需要引用列名则只能使用ID,而不能使用IDE。

5、排序方法不同:

(1)order by 语句默认按照升序对记录进行排序。

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

6、查找范围不同:

(1)order by子句能用于查找组记录特征和某条记录的详细信息;

(2)group by子句只能用于查找组记录特征,但不能查找某条记录的详细信息。Group By + [分组字段](可以有多个)。在执行了这个操作以后,数据集将根据分组字段的值将一个数据集划分成各个不同的小组。

7、使用的函数不一样:

(1)order by放在from table_name后面。可以用于根据指定的列asdf对结果集进行排序。按照降序对记录进行排序,可以使用 DESC 关键字。

(2)group by子句中可使用的函数AVG()  、MIN() 、 MAX()  、SUM() 、COUNT() 。group by all 语句是不能和CUBE 和 ROLLUP 关键字一起使用的。使用 GROUPING 函数确定结果集内的空值是否是 GROUP BY 汇总值。

扩展资料:

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

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

二、Group By, Having, Where, Order by几个语句的执行顺序。

一个SQL语句往往会产生多个临时视图,以上列举的关键字是按照如下顺序进行执行的:Where, Group By, Having, Order by。

1、首先where将最原始记录中不满足条件的记录删除(所以应该在where语句中尽量的将不符合条件的记录筛选掉,这样可以减少分组的次数);

2、然后通过Group By关键字后面指定的分组条件将筛选得到的视图进行分组;

3、接着系统根据Having关键字后面指定的筛选条件,将分组视图后不满足条件的记录筛选掉;

4、然后按照Order By语句对视图进行排序,这样最终的结果就产生了。

在这四个关键字中,只有在Order By语句中才可以使用最终视图的列名。

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

参考资料来源:百度百科-order by

1、意思不一样:

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

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

2、排序方式不一样:

order by是指按字段排序;

group by是指按字段分类 。

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

order by要滞后;

group by要优先。

4、用法不一样:

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

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

5、适用语境不一样:

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

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

6、使用的函数不一样:

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

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