Joh*_*son 2 mysql sql average where-clause having-clause
所以,我认为这相当简单,但我搞砸了一些事情。
我有疑问
SELECT AVG(price), food_type
FROM instructor
GROUP BY food_type
Run Code Online (Sandbox Code Playgroud)
产生这个:
Price | food_type |
2.25 | Drink |
1.50 | Candy |
3 | Soup |
Run Code Online (Sandbox Code Playgroud)
我正在尝试退回所有超过 2 美元的价格
所以我想要:
Price | food_type |
2.25 | Drink |
3 | Soup |
Run Code Online (Sandbox Code Playgroud)
看起来应该很简单
SELECT AVG(price), food_type
FROM instructor
WHERE AVG(price) > 2
GROUP BY food_type
Run Code Online (Sandbox Code Playgroud)
但我无法让它发挥作用。
我究竟做错了什么?
您不能在where子句中使用聚合函数。相反,您需要having:
SELECT AVG(price), food_type
FROM instructor
GROUP BY food_type
HAVING AVG(price) > 2
Run Code Online (Sandbox Code Playgroud)
在 MySQL 中,您还可以在子句中引用别名HAVING(这是标准 SQL 的扩展):
SELECT AVG(price) avg_price, food_type
FROM instructor
GROUP BY food_type
HAVING avg_price > 2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
582 次 |
| 最近记录: |