问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

sql中order by和group by的区别

发布网友 发布时间:2022-04-27 08:12

我来回答

16个回答

懂视网 时间:2022-04-30 15:55

转自: http://blog.csdn.net/winer2008/article/details/4283539

rank,dense_rank,row_number区别

一:语法(用法):
     rank() over([partition by col1] order by col2)
     dense_rank() over([partition by col1] order by col2)
     row_number() over([partition by col1] order by col2)
     其中[partition by col1]可省略。


二:区别
    三个分析函数都是按照col1分组内从1开始排序
   
    row_number() 是没有重复值的排序(即使两天记录相等也是不重复的),可以利用它来实现分页
    dense_rank() 是连续排序,两个第二名仍然跟着第三名
    rank()       是跳跃拍学,两个第二名下来就是第四名
   
    理论就不多讲了,看了案例,一下就明白了
   
SQL> create table t(
  2   name varchar2(10),
  3   score number(3));
 
Table created
 
SQL> insert into t(name,score)
  2   select ‘语文‘,60 from dual union all
  3   select ‘语文‘,90 from dual union all
  4   select ‘语文‘,80 from dual union all
  5   select ‘语文‘,80 from dual union all
  6   select ‘数学‘,67 from dual union all
  7   select ‘数学‘,77 from dual union all
  8   select ‘数学‘,78 from dual union all
  9   select ‘数学‘,88 from dual union all
 10   select ‘数学‘,99 from dual union all
 11   select ‘语文‘,70 from dual
 12  /
 
10 rows inserted
 
SQL> select * from t;
 
NAME       SCORE
---------- -----
语文          60
语文          90
语文          80
语文          80
数学          67
数学          77
数学          78
数学          88
数学          99
语文          70
 
10 rows selected
 
SQL> select name,score,rank() over(partition by name order by score) tt from t;
 
NAME       SCORE         TT
---------- ----- ----------
数学          67          1
数学          77          2
数学          78          3
数学          88          4
数学          99          5
语文          60          1
语文          70          2
语文          80          3   <----
语文          80          3   <----
语文          90          5
 
10 rows selected
 
SQL> select name,score,dense_rank() over(partition by name order by score) tt from t;
 
NAME       SCORE         TT
---------- ----- ----------
数学          67          1
数学          77          2
数学          78          3
数学          88          4
数学          99          5
语文          60          1
语文          70          2
语文          80          3   <----
语文          80          3   <----
语文          90          4
 
10 rows selected
 
SQL> select name,score,row_number() over(partition by name order by score) tt from t;
 
NAME       SCORE         TT
---------- ----- ----------
数学          67          1
数学          77          2
数学          78          3
数学          88          4
数学          99          5
语文          60          1
语文          70          2
语文          80          3  <----
语文          80          4  <----
语文          90          5
 
10 rows selected
 
SQL> select name,score,rank() over(order by score) tt from t;
 
NAME       SCORE         TT
---------- ----- ----------
语文          60          1
数学          67          2
语文          70          3
数学          77          4
数学          78          5
语文          80          6
语文          80          6
数学          88          8
语文          90          9
数学          99         10
 
10 rows selected
 

大家应该明白了吧!呵呵!接下来看应用

一:dense_rank------------------查询每门功课前三名


  select name,score from (select name,score,dense_rank() over(partition by name order by score desc) tt from t) x where x.tt<=3
 
 
NAME       SCORE
---------- -----
数学          99
数学          88
数学          78
语文          90
语文          80
语文          80
 
6 rows selected

二:rank------------------语文成绩70分的同学是排名第几。
   select name,score,x.tt from (select name,score,rank() over(partition by name order by score desc) tt from t) x where x.name=‘语文‘ and x.score=70
 
 
NAME       SCORE         TT
---------- ----- ----------
语文          70          4
   
三:row_number——————分页查询
     select xx.* from (select t.*,row_number() over(order by score desc) rowno from t) xx where xx.rowno between 1 and 3;
 
NAME       SCORE      ROWNO
---------- ----- ----------
数学          99          1
语文          90          2
数学          88          3

sql实现对多个条件分组排序方法和区别

标签:

热心网友 时间:2022-04-30 13:03

1、意思不一样。

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

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

2、适用范围不同:order by 用于排序,一般与asc升序或desc降序一起使用。例如select * from 表A order by 列a。

group by 用于分类汇总,一般与聚合函数(比如avg平均、sum合计、max最大、min最小、count计算行)一起使用。例如select 月份,sum(工资)as 总工资 from 工资表 group by 月份。

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

4、使用的函数不一样。

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

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

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

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

扩展资料

Microsoft Jet 数据库引擎 SQL 数据类型 由13个基本数据类型组成,它们是由 Microsoft Jet 数据库引擎和几个验证过的有效同义字定义的。常见的有:整形,单精度,双精度,可变长度字符,固定长度字符,长型,日期等等。

可以用ALTER TABLE 语句修正基数和增量。刚插进表中的行会有自动为基于新种值和增量值的列生成的值。如果新种和增长的值和以前的种值及增量匹配,就会造成复制。如果这个列是主键,复制值生成时可能导致错误。

定义成TEXT也称作MEMO)或CHAR(也称作有具体长度的 TEXT(n))的字段中的字符被储存在 Unicode 表示格式。

Unicode字符一律需要两个字节存储每一字符。对于现有的主要包含字符数据的 Microsoft Jet数据库,这可能意味着数据库文件被转换成 Microsoft Jet 4.0格式时字长会增加将近一倍。

然而,从前由单字节字符群(SBCS)指示的众多字符群的Unicode 表示可以很容易地被压缩成一个单字节。有关的详细信息,参见CREATE TABLE。如果用COMPRESSION属性定义CHAR列,数据存储时会自动被压缩,提取时解压缩。

参考资料来源:百度百科-SQL数据类型

热心网友 时间:2022-04-30 14:21

order by 和 group by 的区别:

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

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

3,在使用group by的语句中,只能select用于分类的列(表达式),或聚合函数。
where条件用于group by之前,having用于group by 之后对结果进行筛选。

扩展资料:

一、order by用法: 排序查询、asc升序、desc降序

示例:

1.select * from 学生表 

2.order by 年龄    

3.查询学生表信息、按年龄的升序(默认、可缺省、从低到高)排列显示也可以多条件排序、 比如 order by 年龄,成绩 desc    

4.按年龄升序排列后、再按成绩降序排列。

二、group by用法:  分组查询、having 只能用于group by子句、作用于组内,having条件子句可以直接跟函数表达式。使用group by 子句的查询语句需要使用聚合函数。

示例:

1.select 学号,SUM(成绩) from 选课表 group by 学号  按学号分组、查询每个学号的总成绩

2.select 学号,AVG(成绩) from 选课表  

3.group by 学号

4.having AVG(成绩)>(select AVG(成绩) from 选课表 where 课程号='001')

5.order by AVG(成绩) desc

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

参考资料:

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

热心网友 时间:2022-04-30 15:56

1、适用范围不同:

order by
用于排序,一般与asc升序或desc降序一起使用。例如select * from 表A order by 列a。group by
用于分类汇总,一般与聚合函数一起使用。

2、定义不同:

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

3、主要用途不同:

order
by 是按表中某字段排列表中数据。group by 是按某些字段分类。

扩展资料

order by的用法:

首先,order by是用来写在where之后,给多个字段来排序的一个DQL查询语句。

其次,order by写法:

1、select 字段列表/* from 表名 where 条件 order by 字段名1 asc/desc, 字段名2 asc/desc,.......

2、select 字段列表/* from 表名 where 条件 order by 字段序号 asc/desc, 字段序号 asc/desc,.......(此时字段序号要从1开始)

然后,order by的方式:

1、asc 升序,可以省略,是数据库默认的排序方式。

2、desc 降序,跟升序相反。

最后要注意order by的原则,写在最前面的字段,他的优先级最高,也就是写法中第一个的字段名1的优先级最高,优先执行他的内容。

热心网友 时间:2022-04-30 17:47

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

热心网友 时间:2022-04-30 19:55

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语句大全

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

热心网友 时间:2022-04-30 22:20

区别:order by是排序,group by是分组。

order by:默认是ASC,按升序排列,DESC降序排列。order by执行后会进行全表扫描,降低性能,如果数据量特别大的时候,要排序的话尽量按照组合索引中的字段进行order by。

group by:把相同的列放到一组。group by的实现过程除了要使用排序操作外,还要进行分组操作。group by操作想要利用索引,必须满足group by字段必须同时存放于同一个索引中,且该索引是一个有序索引,而且,使用不同的聚合函数也会影响是否使用索引来实现group by操作。

扩展资料

order by 后面可以跟多个字段,优先级按先后顺序。

group by 后面要搭配聚合函数一起使用,没有在group by后的字段,select的时候必须使用聚合函数(sum,count,max,min)。group by 可以和having一起使用来对数据过滤,having后面也必须是聚合函数。如:select no,count(1) from test group by no having count(1) > 1。

热心网友 时间:2022-05-01 01:01

两者的区别:

1、意义、用法不同:

order by :功能是排序,依照查询结果集的某一列(或多列)属性,进行排序(升序:ASC;降序:DESC;默认为升序);

group by:功能是分组汇总,group by按照查询结果集中的某一列(或多列),进行分组,值相等的为一组。

2、应用范围不同:

order by 可以在任何查询语句中,可对查询中的任意字段进行排序。

group by 若要使用,则必须在查询中搭配聚合函数,如sum(),avg()之类的。

3、作用对象不同:

order by作用在于将查询的结果进行排序,并不影响你查询的整体结果,只是变更了顺序;

group by子句的作用对象是查询时的中间结果表,对中间结果表进行汇总之后形成最终的结果表,也就是对查询结果产生了影响。

扩展资料:

我们通过几个示例来加深对group by和order by区别的理解。

已知存在一个积分tabjf表,如下:

1、利用order by子句,以name字段进行排序。sql:select * from tabjf order by name;

输出结果为:

2、利用group by子句,仍以name字段进行分组汇总求JF之和。

sql:select name,sum(JF) as sumJF from tabjf group by name ;

输出结果为:

3、将group by 和order by组合一起使用。

sql:select name,sum(JF) as sumJF from tabjf group by name  ordery by name;

输出结果为:

可以看出,oder by在group by分组的基础上,又根据name对结果进行了重新排序。

热心网友 时间:2022-05-01 03:59

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

热心网友 时间:2022-05-01 07:14

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() 。

热心网友 时间:2022-05-01 10:45

sql中order by和group by的区别:

1、定义不同:

order by  :是按表中某字段排列表中数据
group by :是按某些字段分类。

2、用法不同:

order by :用于排序,一般与asc升序或desc降序一起使用。

group by :用于分类汇总,一般与聚合函数(比如avg平均、sum合计、max最大、min最小、count计算行)一起使用。

3、使用效果不同:

order by :

例句:select proct from orders 查询所有proct列,包括重复的

结果:

group by :

例句:select proct from orders GROUP BY proct:查询结果只输出proct不同的元素列,不包括重复的

结果:

4、在排序ysql不同:

ysql 中order by 与group by的顺序 是:select、from、where、group by、order by

order by :顺序在ysql 中第五位。

group by:顺序在ysql 中第四位。

5、 SELECT语句前后顺序不同:

在 SELECT 语句中,GROUP BY 子句放在 WHERE 子句之后,放在 ORDER BY 子句之前。

order by :GROUP BY 子句放在ORDER BY 子句之前。

group by:group by 子句放在 WHERE 子句之后。

参考资料:

百度百科:SQL ORDER BY

热心网友 时间:2022-05-01 14:33

一、含义不同

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

热心网友 时间:2022-05-01 18:38

区别:

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子句之前,否则会发生编译错误。

热心网友 时间:2022-05-01 22:59

一、适用范围不同:

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

热心网友 时间:2022-05-02 03:37

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 

热心网友 时间:2022-05-02 08:32

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

参考资料:

百度百科——Group By

百度百科——Order By

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
什么药止痒效果好 慕容三藏履历 职业cf电脑配置cf电脑配置要求是什么 玩3a电脑配置要求想玩3a大作需要什么配置 台式电脑哪些可以畅享3a大作想玩3a大作需要什么配置 七彩虹i7-10700台式机 性能强劲 高效静音 小黄鱼游戏台式电脑主机(i7-10700F、16GB、512GB、RTX3070)-适用... 工伤保险记什么科目 在4×4的正方形格纸中,有一个以格点为顶点的△ABC,请你找到点C,使三角... 在4×4方格中, 要求C点在格点上,且以AB为边的△ABC为直角三角形,标出所... order by什么意思 请教高手 product cost by order 和 product cost by sales order的区别 acceptedbyorder中文 order by 和 group by 的区别 谁能告诉我,by order 是什么意思???(后面没有of)急急急急!!! by order of是什么意思 byorderofthepeakyblinders什么意思? 《浴血黑帮》剃刀党经典台词by order什么意思? 如何构思企业网站后台数据库设计 如何解决网站的系统数据库的设计及其实现 做一个简易的个人网站(前后台)数据库应该怎样设计 数据库与网页设计 关于购物网站的数据库设计问题 数据库在网页设计中作用及重要性 如何利用大数据Hadoop等技术设计12306的网站架构 电子商务网站数据库设计 网站数据库怎么设计? 新闻网站数据库设计 请问图中该制作数据图表的网站的网址是什么? 网站的数据库如何设计? No bills shall be stuck on these hoardings, by order. ORDER BY的作用,要详细点哦 sql中的orderby是什么意思它是在什么 sql语句中的order by 我的电脑没声卡,请问在那能找到免费声卡?? 电脑声卡那里可以免费下载? 电脑上没声卡,有什么免费的声卡吗 免费录制电脑声卡声音的录音软件 电脑声卡下载 脑梗塞在CT中怎样才能准确判断呢 急!请问脑梗死和脑部的软化灶在CT上如何鉴别?? 我爸得了脑梗死三年了,我把ct和报告单发上去有懂行的帮忙看一下严重吗?严重到什么程度 老人做的这个脑部ct报告,显示有斑点状略低密度灶,说明脑血管堵塞吗? 宁海是不是海曙区的 脑梗塞帮个忙进来看一下 别视若无堵,早查CT,头部若有哪3种症状,多半脑梗已上身? 宁海属于宁波吗? 我今天去做了个脑CT检查,检查结果是多发脑梗塞(部分阵旧性,我才39岁,怎么会出现这样的情况呢?我该看... 宁波市下辖几区几市几县? 私人银行服务的主要业务