From 5ff4626b3304d9f748b68239301b542e481e0a02 Mon Sep 17 00:00:00 2001 From: Vicky <10212746+haifeng-jiang@user.noreply.gitee.com> Date: Tue, 27 Oct 2026 13:29:09 +0800 Subject: [PATCH] =?UTF-8?q?chore(sql):=20=E6=A0=A1=E5=87=86=E8=A2=AB?= =?UTF-8?q?=E5=8E=8B=E6=B5=8B=E6=95=B0=E6=8D=AE=E6=B1=A1=E6=9F=93=E7=9A=84?= =?UTF-8?q?=E4=BA=92=E5=8A=A8=E8=AE=A1=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 剧集点赞数与剧收藏数改回按实际未删除互动行重算,可重复执行。 --- ...grate-k110-interaction-count-reconcile.sql | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 sql/migrate-k110-interaction-count-reconcile.sql diff --git a/sql/migrate-k110-interaction-count-reconcile.sql b/sql/migrate-k110-interaction-count-reconcile.sql new file mode 100644 index 0000000..2c147e2 --- /dev/null +++ b/sql/migrate-k110-interaction-count-reconcile.sql @@ -0,0 +1,30 @@ +-- Author: fruit.com.cn +-- K110 校准互动计数字段。 +-- 历史压测数据把部分计数直接改成 100000 量级,与真实行数不符; +-- 这里按实际有效互动行重算剧集点赞数与剧收藏数,可重复执行。 +BEGIN; + +-- 剧集点赞数 = 该集未删除的 EPISODE 点赞行数 +UPDATE drama_episode e +SET like_count = sub.cnt +FROM ( + SELECT e2.id, COUNT(l.id) AS cnt + FROM drama_episode e2 + LEFT JOIN content_like l + ON l.target_type = 'EPISODE' AND l.target_id = e2.id AND l.deleted = 0 + GROUP BY e2.id +) sub +WHERE e.id = sub.id AND e.like_count IS DISTINCT FROM sub.cnt; + +-- 剧收藏数 = 该剧未删除的收藏行数 +UPDATE drama d +SET favorite_count = sub.cnt +FROM ( + SELECT d2.id, COUNT(f.id) AS cnt + FROM drama d2 + LEFT JOIN user_favorite f ON f.drama_id = d2.id AND f.deleted = 0 + GROUP BY d2.id +) sub +WHERE d.id = sub.id AND d.favorite_count IS DISTINCT FROM sub.cnt; + +COMMIT;