SELECT 与 GROUP BY 操作顺序

问题描述 投票:0回答:1

在我见过的每一个操作顺序图中,

SELECT
基本上都在最后,并且总是在
GROUP BY
之后。然而,我发现令人困惑的是,在下面的 SQL 语句中,我们在
SELECT
语句中声明了可以在
GROUP BY
中引用的别名,即使
GROUP BY
发生在
SELECT
之前。这怎么可能?

SELECT SUM(amount) as 'sum_amt', MONTH(payment_date) as 'm_date'
FROM payment
GROUP BY m_date
sql mysql
1个回答
0
投票

这是允许的,因为 SQL 解析查询的方式。

当 SQL 解析 SELECT 子句时,它会识别别名。尽管实际计算(如 SUM(amount))是稍后按照运算的逻辑顺序执行的,但别名是预先识别的。这允许您在 GROUP BY 子句中使用 m_date。

© www.soinside.com 2019 - 2024. All rights reserved.