order by 从英文里理解就是行的排序方式,
默认的为升序
order by 后面必须列出排序的字段名,可以是多个字段名。
它不需要查询结果中出现order by的栏位.
更改Order by里的栏位只会影响查询结果的顺序,而不影响查询出的记录总数,和每条记录的内容.
group by 从英文里理解就是分组。必须有“聚合函数”来配合才能使用,使用时至少需要一个分组标志字段。什么是“聚合函数”?像sum()、count()、avg()等都是“聚合函数” 使用group by的目的就是要将数据分类汇总。
groupby是按指定的列对满足Where条件的所有记录分组,并对组内的一些数值型栏位计算出每组的一个统计指标,如求和、求个数、求平均值、求最大值、求最小值、、、、、、、
它对查询结果有个要求:查询结果中的出现的栏位必须是Groupby中栏位的子集。
更改Group by里栏位的顺序不会对查询结果有任何影响;
但是更改Group by的栏位,会对查询得到的记录数量,以及各个汇总函数的结果造成影响。
一般如:
select 单位名称,count(职工id),sum(职工工资) form [某表] group by 单位名称
这样的运行结果就是以“单位名称”为分类标志统计各单位的职工人数和工资总额。
在sql命令格式使用的先后顺序上,group by 先于 order by。
select 命令的标准格式如下:
SELECT select_list [INTO new_table] FROM table_source [WHEREsearch_condition] [GROUP BY group_by_expression] [HAVINGsearch_condition] [ORDER BY order_expression [ASC|DESC]]
order by 是按字段排序
group by 是按字段分类