列出[行]的范围为正负栏的平均值

我正在做一个作业问题:“列出每个客户的名字和体重,对于那些平均体重不到10磅的客户。(不要使用[整数]作为平均体重,您必须使用函数查找平均重量。)

我尝试了几种类似的操作:"WHERE c_weight BETWEEN avg(c_weight - 10) and avg(c_weight + 10)"无济于事。

我当前的代码编译为:

SELECT c_first,c_last,c_weight
FROM client
WHERE c_weight between 160 and 180; 

上面的代码只是一个占位符;我知道更正在于我的WHERE语句,只是不确定如何正确创建它。感谢您的帮助!

wumeng521 回答:列出[行]的范围为正负栏的平均值

我将其表达为:

SELECT c_first,c_last,c_weight
FROM client
WHERE c_weight - (SELECT AVG(c_weight) FROM client) BETWEEN -10 AND 10;

请注意,我们使用子查询来查找整个表的平均权重,然后将每个记录的权重与该权重进行比较,以查看其是否在范围内。

要了解WHERE子句中的逻辑,让我们将平均权重设为150。那么WHERE子句中的范围就是:

c_weight - 150 >= -10 AND c_weight - 150 <= 10

这等同于说:

c_weight >= 140 AND c_weight <= 160
本文链接:https://www.f2er.com/3162461.html

大家都在问