mysql - 如何在 SQL 的 WHERE 条件中使用 AVG()?
问题描述
我试图Employee_Age
通过增加年龄不等于平均年龄的 10 年来更新“员工”表。
我确实尝试过这样的:
UPDATE Employee
SET Employee_Age = Employee_Age + 10
WHERE Employee_Age != (SELECT AVG(Employee_Age) FROM Employee)
但我收到一个错误:
#1093 - 您不能在 FROM 子句中指定目标表 'Employee' 进行更新
解决方案
基本问题是,每次更新都会得到不同的结果。
所以使用像这样的临时表
UPDATE Employee
SET Employee_Age = Employee_Age + 10
WHERE Employee_Age != (SELECT AVG(Employee_Age) FROM (SELECT * FROM Employee) t1)
推荐阅读
- vim - 使用 vim 在 VSCode 的文件列表中导航
- xslt - 如果子节点与使用 xslt 2.0 的其他父节点的子节点重复,则完全删除父节点
- css - 如何离子按钮对齐内容?
- python-3.x - 为 scatter 的“fillcolor”属性接收到的“builtins.bool”类型的无效值
- kdb - 在 kdb+ 中替换 " " 后删除 \n
- angular - 如何在 Angular 应用中封装 Boostrap 并避免重复代码?
- c# - 通过 Rest API 从 Google Drive 下载部分内容需要太长时间
- java - 使用 Fused Location API 和应用程序意外崩溃
- plotly - Plotly.js - 多层时间轴
- python - Leetcode 200. 岛屿数 TLE