首页 新闻 会员 周边 捐助

oracle 将分组统计结果更新到另一张表的字段中

0
悬赏园豆:15 [待解决问题]

vdo_alarmattach(接近150万条记录) 表根据 alarmguid 进行分组统计,获取到的行数更新到VDO_PRESAFEALARM(近50万条) 中的upcount字段

update VDO_PRESAFEALARM t set t.upcount = (
select upcount
from (SELECT Count(t.alarmguid) as upcount, t.alarmguid
FROM vdo_alarmattach t
GROUP BY alarmguid) K
where K.alarmguid = t.alarmguid

)
以上的语法是否存在问题,执行时间太久。有没有办法进行优化改写

问题补充:

2张表索引 alarmguid 已经添加

大神带带我吧的主页 大神带带我吧 | 初学一级 | 园豆:25
提问于:2020-09-07 15:04
< >
分享
所有回答(1)
0

这样试试

UPDATE VDO_PRESAFEALARM t,
(
SELECT
Count(t.alarmguid) AS upcount,
t.alarmguid
FROM
vdo_alarmattach t
GROUP BY
alarmguid
) K
SET t.upcount = k.upcount
WHERE
t.alarmguid = K.alarmguid

按时睡觉。 | 园豆:190 (初学一级) | 2020-09-08 17:52
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册