Sql 在SELECT语句中使用HAVING和AS时无法识别列

Sql 在SELECT语句中使用HAVING和AS时无法识别列,sql,Sql,我得到一个错误,即HAVING子句中的total_carries不是有效列: SELECT type, SUM(calories) AS total_calories FROM exercise_logs GROUP BY type HAVING total_calories > 150; 知道为什么会这样吗?谢谢。您需要使用聚合列。别名只能在order by或子查询中使用 SELECT type, SUM(calories) AS total_calories FROM exercis

我得到一个错误,即HAVING子句中的total_carries不是有效列:

SELECT type, SUM(calories) AS total_calories FROM exercise_logs
GROUP BY type
HAVING total_calories > 150;

知道为什么会这样吗?谢谢。

您需要使用聚合列。别名只能在order by或子查询中使用

SELECT type, SUM(calories) AS total_calories FROM exercise_logs
GROUP BY type
HAVING SUM(calories) > 150;

可能重复的。这实际上取决于数据库。实际上,许多数据库在
HAVING
子句中都支持别名。@GordonLinoff感谢您提供的信息!我不知道我是基于SQL server的。。