首页 > 解决方案 > 将字段更新为一对多关系字段总和

问题描述

我在现有表中添加了一个字段,现在我必须更新旧条目以获得正确的值。

UPDATE shift_job 
SET elapsed_time = ROUND(EXTRACT(EPOCH FROM actual_end_time - actual_start_time)/60):

ALTER TABLE shift_worker ADD COLUMN actual_work_duration integer NULL;
UPDATE shift_worker
SET actual_work_duration = SUM(SELECT elapsed_time
FROM shift_job 
WHERE shift_worker_id = shift_worker.id);

我计算了一项工作的 elapsed_time 并且效果很好。在尝试为工人计算实际工作持续时间时,我遇到了问题。我需要对 shift_worker.id = shift_job.shift_worker_id 的所有“elapsed_time”字段求和。

我怎样才能做到这一点?

标签: sqlpostgresql

解决方案


UPDATE shift_worker
SET actual_work_duration = (SELECT SUM(elapsed_time)
FROM shift_job 
WHERE shift_worker_id = shift_worker.id);

推荐阅读