sql中,group by 与 order by 两条语句的输入顺序能颠倒吗?

如题所述

如果二者在同一个select 子句中,肯定是先使用 group by 分组,为的是使用聚合函数,order by 放在后面,起作用只是为了将查询结果排序。举个例子:
按班级求最高成绩:
select class_num, max(score) from student group by classnum order by class_num;
此语句,先按班级分组,求出最高成绩,然后将结果按照班级号排序。

如果不是同一个select 子句,那就不一定了,例如:
select a.字段, b.字段 from (a子查询,其中包含order by) a, (b子查询,其中包含group by) where 关联条件;
这种情况下,order by 有可能在 group by 之前。但是二者没有什么相互的影响。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-10-20
不能颠倒,sql会按前后顺序执行
第2个回答  2015-10-08
ORDER BY在一条查询语句中只能放在最后

Sql order by 和 group BY 如何共同运用?
1、如果声明了 GROUP BY 子句,输出就分成匹配一个或多个数值的不同组里。如果出现了 HAVING 子句,那么它消除那些不满足给出条件的组。2、如果声明了 ORDER BY 子句,那么返回的行是按照指定的顺序排序的。如果没有给出 ORDER BY,那么数据行是按照系统认为可以最快生成的方法给出的。例如:select ...

在同一查询中使用 GROUP BY 和 ORDER BY
GROUP BY 和 ORDER BY 是SQL查询中的两个关键组件,虽然它们都涉及排序,但作用却大相径庭。GROUP BY用于数据分组并执行聚合函数,如COUNT、AVG等,而ORDER BY则用于对查询结果进行排序。下面,我们将深入探讨这两个子句的用法,以及如何在Navicat Premium中结合使用它们。ORDER BY按列对查询结果进行排序...

sql中group by和order by的区别
order by 是排序,即按什么字段来排序,顺序或倒序。在group by 中可以使用order by 如:select userid,count(*) as cnt from usercount group by userid order by cnt (倒序时添加 desc)

sql server where、group by、order by 执行顺序
wheregroup by order bywhere子句从数据源中去掉不符合其搜索条件的数据,group by 子句搜集数据行到各个组中,最后order by对之前的结果进行指定排序

Oracle Day02 Order by_group by_字段_函数_sql语句顺序
by关键字,可以跟多个字段,分组之后可以使用分组函数对每个组进行数据处理。having关键字用于对分组后的数据进行过滤,类似于where的用法。Sql顺序分为两类,一类是select、from、group by、having、order by、yas\/escl的书写顺序;另一类是from、ere、grou、y haigetrde、yas\/escl的书写顺序。

同个sql中,如何用group by 和 order by,想要order by的是sum出的一列...
select c1 sum(c2) from t1 group by c1 order by 2 没有问题请采纳哈 首先你ORDER BY 后面的列名要在SELECT后存在,SUM后的列要给一个别名然后ORDER BY 这个别名,要么就用它的顺序号,如你这个语句里 ding.ord_amt是SUM里的字段名没有给别名所以直接ORDER BY会出错,在SELECT 后的顺序是第...

SQL语句中,如果有group by 和order by两个语句,是先分组还是先排序?
SQL语句中,有group by 和order by两个语句,是先分组还是先排序? 肯定是group by先 order by优先顺序最低,在最后 group by 语句执行后记录会按关键字自动升序? 不一定,group by只负责分组。VF 中先排序order by还是先分组 group by 这是需要看题上的要求,要求要分组才分组,要求要...

order by 和 group by 的区别?
在SQL查询中,order by和group by是两种不同的操作,它们各有其功能和用法。order by主要用于对数据进行行级排序,它按照指定字段的值对查询结果进行升序或降序排列。例如:SELECT * FROM 学生表 ORDER BY 年龄 ASC 或 DESC 而group by则是用于数据分组,将查询结果按照一个或多个字段进行分类,常与...

Order By与Group By 辨析
在SQL中,"ORDER BY"和"GROUP BY"是用于对查询结果进行排序和分组的子句。它们之间存在区别,具体使用应根据查询需求和数据分析目的决定。使用场景:在处理数据时,合理运用"ORDER BY"和"GROUP BY"可满足对数据的排序和分组需求。同时,选择合适聚合函数(如SUM、COUNT、AVG等)进行聚合计算也是关键。举例...

sql里的order by和group by区别是什么?
sql 里的 order by 和 group by 的区别:order by 从英文里理解就是行的排序方式,默认的为升序。 order by 后面必须列出排序的字段名,可以是多个字段名。group by 从英文里理解就是分组。必须有“聚合函数”来配合才能使用,使用时至少需要一个分组标志字段。什么是“聚合函数”?像sum()、count(...

相似回答