需要从employee表的dno列中根据在每个部门工作的员工数更新部门表的dcount列。尝试使用update部门设置dcount=(从dno组的雇员内部联接部门中选择计数());*,这导致了一个错误:由用作表达式的子查询返回的多行:
期望的结果是:
**dname/dnumber/dcount
研究.5-4
行政管理4/3
总部*1**
需要帮助。提前谢谢。格鲁海特
发布于 2021-11-14 09:36:42
您的子查询(select count() ...)
返回几行,每个雇员一行,其中postgres只期望从该子查询中得到一行,以便在department
表中一次更新一行。在本例中,用cte
代替:
WITH list AS
(
select dno, count(*) AS dno_count
from employee
group by dno
)
update department AS d
set dcount = l. dno_count
from list AS l
where d.dnumber = l.dno ;
https://stackoverflow.com/questions/69961456
复制相似问题