order by 与 group by 的执行顺序
时间: 2023-08-25 14:06:57 浏览: 87
在 SQL 中,ORDER BY 和 GROUP BY 两个子句都用于对结果进行排序。它们的执行顺序如下:
1. 首先执行 FROM 子句,从指定的表中获取数据。
2. 然后执行 WHERE 子句,筛选出符合条件的记录。
3. 接着执行 GROUP BY 子句,将符合条件的记录按照指定的分组字段进行分组。
4. 然后执行 HAVING 子句,筛选出分组后符合条件的组。
5. 最后执行 SELECT 子句,对指定的字段进行计算、聚合或选择,并为结果集排序。
因此,ORDER BY 子句的执行顺序是在 GROUP BY 和 SELECT 子句之后。同时,HAVING 子句只能在 GROUP BY 子句之后使用,因为它需要已经进行分组后的结果集。
相关问题
ORDER BY和group by执行顺序
在 SQL 中,GROUP BY 和 ORDER BY 是两个不同的操作,它们的执行顺序如下:
1. FROM:从指定的表中选择数据。
2. WHERE:筛选出满足条件的数据。
3. GROUP BY:按照指定的列进行分组。
4. SELECT:选择需要的列,并进行聚合操作。
5. HAVING:筛选出满足条件的分组。
6. ORDER BY:按照指定的列进行排序。
7. LIMIT:限制输出结果的数量。
因此,GROUP BY 的操作会先于 ORDER BY 的操作执行。在 GROUP BY 操作完成之后,才会根据 ORDER BY 操作中指定的列进行排序。
having 与order by与group by顺序
通常,SQL查询的顺序是先进行FROM子句中的表连接,然后进行WHERE子句中的筛选,然后是GROUP BY子句中的分组,然后是HAVING子句中的筛选,最后是SELECT子句中的选择和计算,最后是ORDER BY子句中的排序。所以,在写一个包含HAVING、ORDER BY和GROUP BY的SQL查询时,应该按照这个顺序来写。具体来说,应该先使用GROUP BY对数据进行分组,然后使用HAVING筛选分组,最后使用ORDER BY对结果进行排序。
阅读全文