SQL中的group by语句和order by语句怎么用?最好能有个例子

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL中的group by语句和order by语句怎么用?最好能有个例子相关的知识,希望对你有一定的参考价值。

group by是分组的,比如你要查询一个班级的学生,各省分别有多少人。(表结构是学生表,有学号,姓名,所在省,备注等。)
就应该用到group by了,如:
SELECT 所在省,COUNT(*) AS 学生数
FROM 学生
GROUP BY 所在省

Order by是用来排序的。如,你想要把上例中查得的结果按人数从大到小,或从小到大排列,可以加这么一句,
ORDER BY 学生人数 (DESC或ASC);
好了,就这么个用法。
后面括号的关键字,指明了从大到小,还是从小到大,只能写一个,并且不要括号。
参考技术A group by 是分组的意思,按其后的字段对结果分组,该字段内容相同的结果会列在一起;
例子:
原数据库内容:
学号 姓名 性别 系别
101013 王五 男 计算机
101014 孙二 女 数学
101011 张三 男 计算机
101012 李四 女 数学
select *
from Student
Group by Dept //用系别对结果分组
结果:
101011 张三 男 计算机
101013 王五 男 计算机
101014 孙二 女 数学
101012 李四 女 数学
***************************************************
order by 是排序的意思,按其后的字段对结果排序,但是排序分升序,降序:
select *
from Student
order by No //用学号升序排列结果:
101011 张三 男 计算机
101012 李四 女 数学
101013 王五 男 计算机
101014 孙二 女 数学
参考技术B 可按照在 GROUP BY 子句中定义的组对行进行分组。以其最简单的形式,组由称为分组列的列组成。 SELECT 子句中的列名必须为分组列或列函数。列函数对于 GROUP BY 子句定义的每个组各返回一个结果。下列示例产生一个列出每个部门编号的最高薪水的结果:

SELECT DEPT, MAX(SALARY) AS MAXIMUM
FROM STAFF
GROUP BY DEPT

此语句产生下列结果:
DEPT MAXIMUM
------ ---------
10 22959.20
15 20659.80
20 18357.50
38 18006.00
42 18352.80
51 21150.00
66 21000.00
84 19818.00
注意:计算的是每个部门(由 GROUP BY 子句定义的组)而不是整个公司的 MAX(SALARY)。

order by 是排序用的,默认是正序排列,order by 课程名 desc 表示按照倒序排序。
当然你可以把order by 放在 group by的后面为结果进行排序。
SELECT DEPT, MAX(SALARY) AS MAXIMUM
FROM STAFF
GROUP BY DEPT
ORDER BY MAX(SALARY)
参考技术C group by主要用于分组了,比如在一个班级中一共有4个小组,问第一小组的平均成绩是多少,这就是针对组而言了,select avg(成绩) from student group by 第一小组,如果有条件再加上having+条件,同where +条件用法相同
而order by是对字段排序用的,如对你的学号进行排序查询,select * from student order by 学号
参考技术D
顺序是:
SELECT .... FROM .... WHERE .... GROUP BY .... ORDER BY ....

sql语句select group by order by where一般先后顺序

 

写的顺序:select ... from... where.... group by... having... order by..
执行顺序:from... where...group by... having.... select ... order by...
 
Mysql

   全值匹配我最爱,最左前缀要遵守;

   带头大哥不能死,中间兄弟不能断;

   索引列上少计算,范围之后全失效;

   LIKE百分写最右,覆盖索引不写星;

   不等空值还有or,索引失效要少用。


以上是关于SQL中的group by语句和order by语句怎么用?最好能有个例子的主要内容,如果未能解决你的问题,请参考以下文章

SQL语句中,如果有group by 和order by两个语句,是先分组还是先排序?

sql语句执行顺序之group by、order by

sql语句 group by和order by

sql语句中的group by啥意思

sql语句中的group by要怎么用!!

SQL数据库中查询语句Order By和Group By有啥区别