我意识到,将别名放在GROUP BY
中并在SELECT
查询中调用它是不合语法的,如下所示。
错误
SELECT
day, num
FROM users
GROUP BY DAYNAME(created_at) as day
ORDER BY COUNT(*) as num;
但是,如果我要进行其他操作(在SELECT
中使用别名,然后在GROUP BY
中调用它),则它的工作方式如下所示。
正确
SELECT
DAYNAME(created_at) as day, COUNT(*) as num
FROM users
GROUP BY day
ORDER BY num;
我知道MySQL中的执行顺序,告诉我SELECT
在GROUP BY
之后执行。但是根据结果,这确实让我感到困惑。有人可以说清楚吗?
这是另一个可能被标记为类似问题的问题,但答案似乎并未详细描述正在发生的事情。 Group by Alias not working -stackoverflow