MySQL - 按平均值增加百分比值

时间:2017-10-27 19:04:40

标签: mysql sql

我有一个名为讲师的表。

UPDATE instructor
SET salary=salary*1.05
where salary<(select avg(salary) from instructor)

2 个答案:

答案 0 :(得分:2)

可能是你无法根据子选择更新表格以避免这种情况你应该根据subselect创建一个临时表来参考这个

UPDATE instructor
SET salary=salary*1.05
where salary< ( 
      select t.my_avg 
      from (
          select avg(salary) my_avg from instructor
      ) t
) 

答案 1 :(得分:1)

您无法更新表并将其用作同一查询中的子选择。这样做甚至没有意义。

要实现目标,您需要运行两个不同的查询。第一个是您的子选择。然后,第二个查询使用第一个查询的结果作为参数更新表。

查询1:

select avg(salary) from instructor

查询2:

UPDATE instructor
SET salary=salary*1.05
where salary < @avg_salary