一、含义不同
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是按字段名对查询结果进行排序,默认是asc升序,desc是降序。而group by常结合一些聚合函数来使用,它的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理。
二者用法示例:
如下图所示,第一张图是order by用法的一个示例,从square表中查询name中有”方块“两字的数据并按降序输出显示。第二张图是group by用法的示例,以width为分类依据,统计square表中name中有“方块”两字的数据的个数。
扩展资料:
当order by的后面有多个字段时,最前面的字段优先级最高,例如select 字段列表 from 表名 where 条件 order by 字段名1 asc/desc order by 字段A,字段B,字段C,即字段A的优先级最高,先按字段A排列后字段A重复的再按字段B排列,以此类推。
group by子句使用时必须放在 WHERE 子句中的条件之后,必须放在order by子句之前,否则会发生编译错误。
一、适用范围不同:
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。
扩展资料
order by
ORDER BY 语句用于根据指定的列asdf对结果集进行排序。
ORDER BY 语句默认按照升序对记录进行排序。
order by放在from table_name后面。
如果您希望按照降序对记录进行排序,可以使用 DESC 关键字。
group by
GroupBy语句从英文的字面意义上理解就是“根据(by)一定的规则进行分组(Group)”。
它的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理。
参考资料来源:百度百科:order by
参考资料来源:百度百科:GROUP BY
order by 和 group by 的区别:
1,order by 从英文里理解就是行的排序方式,默认的为升序。 order by 后面必须列出排序的字段名,可以是多个字段名。
2,group by 从英文里理解就是分组。必须有“聚合函数”来配合才能使用,使用时至少需要一个分组标志字段。
例:select * from 表A order by 列a
group by 用于分类汇总,一般与聚合函数(比如avg平均、sum合计、max最大、min最小、count计算行)一起使用。
例:select 月份,sum(工资)as 总工资 from 工资表 group by 月份
此语句用于统计每个月的日总工资
在使用group by的语句中,只能select用于分类的列(表达式),或聚合函数。
where条件用于group by之前,having用于group by 之后对结果进行筛选。
扩展资料:
sql常见语句:
更新:update table1 set field1=value1 where 范围
查找:select * from table1 where field1 like ’%value1%’ (所有包含‘value1’这个模式的字符串)
排序:select * from table1 order by field1,field2 [desc]
求和:select sum(field1) as sumvalue from table1
平均:select avg(field1) as avgvalue from table1
最大:select max(field1) as maxvalue from table1
最小:select min(field1) as minvalue from table1[separator]
参考资料:百度百科-SQL
1. 使用范围不同
Group By一般是和一些聚合函数一起使用,比如求平均的函数avg,还有求和sum,求个数count,求最大max,求最小min等等。
Order By是对查询的结果进行一个再排序的过程,一般放在查询语句的最后,可以是单列,也可以实现多列的排序。
2. 分组字段不同
Group By使用时至少需要一个分组标志字段。Group By也经常与having一同使用。
Order By后面必须列出排序的字段名,可以是多个字段名。
3. 使用顺序不同
在SQL命令格式使用的先后顺序上,Group By先于Order By。
扩展资料:
Sql order by和 group by共同运用的方法
如果声明了group by子句,输出就分成匹配一个或多个数值的不同组里。 如果出现了have子句,那么它消除那些不满足给出条件的组。
如果声明了order by子句,那么返回的行是按照指定的顺序排序的。 如果没有给出order by,那么数据行是按照系统认为可以最快生成的方法给出的。
Sql order by和 group by同时使用时要注意:
1. order by子句中的列必须包含在聚合函数或group by子句中;
2. order by要放在group by的后面。
例:
slect * from table group by class,id order by id
slect * from table group by class,id order by class
参考资料: