order by和group by的区别是什么?

如题所述

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课程平均成绩的学号、并按平均成绩的降序排列。

参考资料:

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

温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜