Lab 2.14:使用子查询筛选高个子马匹SQL问题求助
问题解决:筛选身高高于平均值的马匹
你的SQL存在几个关键问题:
- 聚合函数
AVG(Height)不能直接放在WHERE子句中,WHERE用于筛选行,聚合函数需要在子查询中计算出结果后再做比较 - 你的子查询没有计算平均值,仅简单查询了Height列,也未和主查询的Height建立比较关系
正确的SQL写法如下:
SELECT RegisteredName, Height FROM Horse WHERE Height > (SELECT AVG(Height) FROM Horse) ORDER BY Height ASC;
代码解释:
- 子查询
(SELECT AVG(Height) FROM Horse)会计算出Horse表中所有马匹的平均身高 - 主查询的
WHERE Height > ...会筛选出身高大于这个平均值的记录 ORDER BY Height ASC让结果按身高升序排列
内容的提问来源于stack exchange,提问作者djayjazz
相关产品推荐
相关产品推荐

