mySQL 在新创建的列上使用 where
mySQL using where on newly created column
所以,我认为这很简单,但我搞砸了。
我有疑问
SELECT AVG(price), food_type
FROM instructor
GROUP BY food_type
产生这个:
Price | food_type |
2.25 | Drink |
1.50 | Candy |
3 | Soup |
我正在尝试 return 所有超过 2 美元的价格
所以我想要:
Price | food_type |
2.25 | Drink |
3 | Soup |
看来应该就这么简单
SELECT AVG(price), food_type
FROM instructor
WHERE AVG(price) > 2
GROUP BY food_type
但我无法让它工作。
我做错了什么?
您不能在 where
子句中使用聚合函数。相反,您需要 having
:
SELECT AVG(price), food_type
FROM instructor
GROUP BY food_type
HAVING AVG(price) > 2
在MySQL中,你也可以在HAVING
子句中引用别名(这是对标准SQL的扩展):
SELECT AVG(price) avg_price, food_type
FROM instructor
GROUP BY food_type
HAVING avg_price > 2
所以,我认为这很简单,但我搞砸了。
我有疑问
SELECT AVG(price), food_type
FROM instructor
GROUP BY food_type
产生这个:
Price | food_type |
2.25 | Drink |
1.50 | Candy |
3 | Soup |
我正在尝试 return 所有超过 2 美元的价格
所以我想要:
Price | food_type |
2.25 | Drink |
3 | Soup |
看来应该就这么简单
SELECT AVG(price), food_type
FROM instructor
WHERE AVG(price) > 2
GROUP BY food_type
但我无法让它工作。
我做错了什么?
您不能在 where
子句中使用聚合函数。相反,您需要 having
:
SELECT AVG(price), food_type
FROM instructor
GROUP BY food_type
HAVING AVG(price) > 2
在MySQL中,你也可以在HAVING
子句中引用别名(这是对标准SQL的扩展):
SELECT AVG(price) avg_price, food_type
FROM instructor
GROUP BY food_type
HAVING avg_price > 2