123

我需要在 WHERE 子句中使用别名,但它一直告诉我它是一个未知列。有没有办法解决这个问题?我需要选择评级高于 x 的记录。评级计算为以下别名:

sum(reviews.rev_rating)/count(reviews.rev_id) as avg_rating
4

5 回答 5

237
于 2008-10-14T06:52:00.693 回答
33

我不知道这是否适用于 mysql,但使用 sqlserver 你也可以像这样包装它:

select * from (
  -- your original query
  select .. sum(reviews.rev_rating)/count(reviews.rev_id) as avg_rating 
  from ...) Foo
where Foo.avg_rating ...
于 2008-10-14T07:08:27.743 回答
8
于 2017-07-10T14:35:41.807 回答
1
SELECT * FROM (SELECT customer_Id AS 'custId', gender, age FROM customer
    WHERE  gender = 'F') AS c
WHERE c.custId = 100;
于 2019-07-19T07:04:52.550 回答
0

如果您的查询是静态的,您可以将其定义为视图,然后您可以在查询视图时在 where 子句中使用该别名。

于 2014-10-20T21:39:40.530 回答