You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL问题:如何筛选平均体重小于70的省份及对应平均体重

SQL查询问题:筛选平均体重小于70的省份

问题根源

你用WHERE子句过滤分组后的平均体重是错误的:

  • WHERE是在分组前对单条数据做筛选,根本识别不了分组后才生成的Avg_Weight别名,也没法直接用聚合函数作为筛选条件。所以原语句里的WHERE "Avg_Weight" < 70等于没生效,自然返回了所有省份的结果。

正确写法

改用HAVING子句,它专门用于在分组后过滤分组结果:

SELECT province, AVG(weight) AS "Avg_Weight" 
FROM people 
GROUP BY province
HAVING AVG(weight) < 70;

部分数据库(如MySQL、PostgreSQL)也支持直接使用别名筛选:

SELECT province, AVG(weight) AS "Avg_Weight" 
FROM people 
GROUP BY province
HAVING "Avg_Weight" < 70;

效果说明

先按province分组计算每个省份的平均体重,再通过HAVING筛选出平均体重小于70的分组,最终只会返回Opole和对应的平均体重45。

内容的提问来源于stack exchange,提问作者Enzo Austin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 18:45:47