gpt4 book ai didi

sql - 我可以在 Postgres 中使用来自其他表的聚合数据更新表中的多个字段吗?

转载 作者:行者123 更新时间:2023-11-29 13:05:21 25 4
gpt4 key购买 nike

我想出了如何一次处理一个字段(请参阅下面的两个更新查询)。有没有办法在单个查询中执行此操作?

UPDATE upload_data sd
SET
photo_count =
(SELECT sum(photo_count)
FROM media_uploads mu
WHERE mu.user_id=sd.user_id
AND mu.date=current_date
GROUP BY mu.user_id);


UPDATE upload_data sd
SET
video_count =
(SELECT sum(video_count)
FROM media_uploads mu
WHERE mu.user_id=sd.user_id
AND date_trunc('month', mu.date)=date_trunc('month', sd.date)
GROUP BY mu.user_id);

最佳答案

我认为您可以通过 JOINUPDATE 来完成此操作。在 postgresql 中为 UPDATE syntax ,它会是这样的:

UPDATE upload_data sd
SET sd.photo_count = m.photo_count,
sd.video_count = m.video_count
FROM
(
SELECT
user_id,
sum(photo_count) AS photo_count,
SUM(video_count) AS video_count
FROM media_uploads
WHERE mu.date = current_date
GROUP BY user_id
) AS m
WHERE m.user_id = sd.user_id;

关于sql - 我可以在 Postgres 中使用来自其他表的聚合数据更新表中的多个字段吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14701349/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com