根据我的知识,在sql中执行查询的顺序如下。
1. FROM
2. ON
3. OUTER/Inner
4. WHERE
5. GROUP BY
6. CUBE or ROLLUP
7. HAVING
8. SELECT
9. DISTINCT
10. ORDER BY
11. TOP
任何人都可以告诉我聚合函数的执行顺序。在我的select子句中我有2个聚合函数。首先执行哪一个?
Select City, Gender, SUM(Salary) as TotalSalary,
COUNT(ID) as TotalEmployees
from tblEmployee
group by City, Gender
答案 0 :(得分:1)
执行 all-at-once
“一次性操作”意味着所有表达式都相同 逻辑查询过程阶段在逻辑上同时进行评估。
您的SUM
和COUNT
处于相同的处理阶段。
请记住,一次性意味着你也做不到这样的事情:
SELECT 1 AS col1,
col1 + 1 AS col2;
您将获得:Invalid column name 'col1'.
答案 1 :(得分:0)
您的列表看起来很像SQL Server对查询的逻辑处理顺序的描述(here)。
这实际上与实际执行顺序无关。它描述了在编译SQL查询时如何解释子句。特别是,它解释了为什么SELECT
中的WHERE
中定义的列别名不可用。原因很简单:WHERE
在SELECT
之前处理,因此别名尚未定义。
这与查询的实际执行无关。