mysql - 列出正负列平均值范围内的[行]

标签 mysql

我正在做一道作业:“列出每个客户的姓名和体重,对于平均体重在 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 语句中,我只是不确定如何正确创建它。感谢您的帮助!

最佳答案

我将其表述为:

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

关于mysql - 列出正负列平均值范围内的[行],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58704138/

相关文章:

java - 从 MySQL 转换到 SQLite 时出错

mysql - Heroku Node.js 应用程序无法启动

MySql 数据库语法错误

php - 为什么我收到 "Call to a member function on a non-object"错误?

database - 如何修复从远程服务器将 EE 数据库导入本地主机时收到的 #1062 错误

MySQL : merge data from 3 tables in one result with one query statement

php - MySQL - 连接两个表并打印重复项

mysql - MySQL 中具有父 ID 的多用户级别

javascript - 如何在 JS 甘特图中实现 MYSQL 数据获取?

php - MySQL搜索字符串包含的位置