sql 里的 order by 和 group by 的区别

来源:互联网 发布:rete算法 编辑:程序博客网 时间:2024/04/29 16:45

order by  是按字段排序
group by
 是按字段分类
    order by
从英文里理解就是行的排序方式,默认的为升序。 order by 后面必须列出排序的字段名,可以是多个字段名。
     group by
从英文里理解就是分组。必须有聚合函数来配合才能使用,使用时至少需要一个分组标志字段。
   
什么是聚合函数
  
sum()count()avg()等都是聚合函数
  
使用group by 的目的就是要将数据分类汇总。
   一般如:
          select
单位名称,count(职工id),sum(职工工资) form [某表]
          group by
单位名称
         
这样的运行结果就是以单位名称为分类标志统计各单位的职工人数和工资总额。

  
sql命令格式使用的先后顺序上,group by 先于 order by
       select
命令的标准格式如下:
       SELECT select_list    
      [ INTO new_table ]    
      FROM table_source    
      [ WHERE search_condition ]    
      [ GROUP BY group_by_expression ]    
      [ HAVING search_condition ]    
      [ ORDER BY order_expression [ ASC | DESC ] ]

这两个是很像.
order by
是按指定的列的升序或降序来给查询结果排序,
它不需要查询结果中出现order by的栏位.
更改Order by里的栏位只会影响查询结果的顺序,而不影响查询出的记录总数,和每条记录的内容.

group by是按指定的列对满足Where条件的所有记录分组,并对组内的一些数值型栏位计算出每组的一个统计指标,如求和、求个数、求平均值、求最大值、求最小值、、、、、、、
它对查询结果有个要求:查询结果中的出现的栏位必须是Group by中栏位的子集。
更改Group by里栏位的顺序不会对查询结果有任何影响;
但是更改Group by的栏位,会对查询得到的记录数量,以及各个汇总函数的结果造成影响。

 

原创粉丝点击