删除所有薪水低于教师平均薪水的教师
如果我使用下面的MySQL:
delete from instructor
where salary< (select avg (salary) from instructor);
如果我们使用上面的SQL,它将导致一个问题:当我们从存款中删除元组时,平均工资变化
那么如何实现呢?
我知道
但是当我实现这个: 它始终在使用MySQL的Workbench中显示错误
delete
from (select*
from instructor
where salary < (select avg(salary) from instructor)) as A
任何人都可以帮我解决吗?
答案 0 :(得分:3)
您可以将平均值存储到变量中。
set @average = (...)
delete from instructor where salary < @average
或者如果您希望它在一个查询中:
delete from instructor
cross join (SELECT avg(salary) as average from instructor) t
where salary < average;