我尝试了这三种不同的方式,而PostgreSQL仍然不喜欢我的状态" UPDATE"中不允许使用聚合函数。如果不这样做,我不知道如何做到这一点。有人能指出我正确的方向,用我的平均工资来填充我的平均工资领域吗?
尝试1:
UPDATE public."JobCategory"
SET "AverageWage" = round(avg("Wage"), 4)
FROM public."Employees" WERE "Wage" > 0
尝试2:
UPDATE public."JobCategory" c
INNER JOIN (
SELECT round(avg("Wage"), 4) as average
FROM public."Employees"
) x ON c."Index" = x."JobIndex"
SET c."AverageWage" = x.average
尝试3:
UPDATE public."JobCategory" AS v
SET "AverageWage" = s.round(avg("Wage"), 4)
FROM public."Employees" AS s
WHERE v."Index" = s."JobIndex"
答案 0 :(得分:1)
您可以使用子查询执行此操作:
WITH subq AS (
SELECT round(avg(Wage), 4) as average
FROM public.Employees
)
UPDATE public.JobCategory jc
SET AverageWage = subq.average
FROM subq