查询如下:
SELECT DISTINCT max(age), area FROM T_USER GROUP BY area ORDER BY area;
那么,order by,group by,distinct和aggregation function的流程顺序是什么?
也许不同的顺序会得到相同的结果,但会导致不同的表现。我想合并多个结果,我得到了sql,并进行了解析。所以我想知道标准sql剂量的顺序。
答案 0 :(得分:1)
这比group by / aggregation / order by更大。您希望了解查询引擎如何创建结果集。在较高级别,这意味着创建执行计划,从表中检索数据到查询的工作集,操纵数据以匹配请求的结果集,然后将结果集返回给调用者。对于非常简单的查询或与表设计匹配的查询(或者为您需要运行的查询精心设计的表模式),这可能意味着将表或索引中的数据流直接返回给调用者。更常见的是,它意味着更详细的思考,大致按照以下步骤进行思考:
虽然那很复杂,但这只是一个开始。它不会开始考虑窗口函数,公用表表达式,交叉应用,数据透视和打开等。但是,希望能够让您了解数据库引擎需要做的工作。