From 736ba9b12d02399c86260012a72e1a91e99ab31a Mon Sep 17 00:00:00 2001 From: butubb <1422726308@qq.com> Date: Mon, 12 Oct 2026 16:14:29 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=9C=80=E8=BF=91=E4=B8=83=E5=A4=A9?= =?UTF-8?q?=E8=A7=86=E9=A2=91=E7=9A=84=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/queries/recent-7-days-videos.sql | 41 +++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 docs/queries/recent-7-days-videos.sql diff --git a/docs/queries/recent-7-days-videos.sql b/docs/queries/recent-7-days-videos.sql new file mode 100644 index 0000000..f5f54bf --- /dev/null +++ b/docs/queries/recent-7-days-videos.sql @@ -0,0 +1,41 @@ +-- 最近七天发布的视频(抖音)。换平台把两处 platform='dy' 改成 'xhs'。 +-- +-- 窗口按 **published_at(作者发布时间)** 算,不经过时区:库里存的是毫秒时间戳, +-- 用 UNIX_TIMESTAMP() 拿当前 epoch 相减,和 MySQL 的 time_zone 设置无关。 +-- +-- 改成「最近七天我们采到的」就把 n.published_at 换成 n.first_seen_at(两处)。 +SELECT + COALESCE(st.nickname, n.creator_name, '') AS 博主昵称, + ca.alias AS 博主备注, + FROM_UNIXTIME(n.published_at / 1000) AS 发布时间, + n.title AS 标题, + n.note_url AS 链接, + m.liked_count AS 点赞, + m.comment_count AS 评论, + m.collected_count AS 收藏, + m.share_count AS 分享, + (SELECT GROUP_CONCAT(t.name ORDER BY t.sort_order SEPARATOR ' / ') + FROM monitor_note_tag nt + JOIN monitor_tag t ON t.id = nt.tag_id + WHERE nt.platform = 'dy' AND nt.note_id = n.note_id) AS 标签, + (SELECT na.alias FROM monitor_note_alias na + WHERE na.platform = 'dy' AND na.note_id = n.note_id LIMIT 1) AS 作品备注, + FROM_UNIXTIME(n.first_seen_at / 1000) AS 首次采到 +FROM monitor_note n +JOIN monitor_task t ON t.id = n.task_id +-- 这条作品最近一轮的指标 +LEFT JOIN monitor_note_metric m + ON m.id = (SELECT m2.id FROM monitor_note_metric m2 + WHERE m2.task_id = n.task_id AND m2.note_id = n.note_id + ORDER BY m2.run_id DESC LIMIT 1) +-- 博主最近一轮的账号级指标(昵称优先取这个,它每轮都从资料接口重写) +LEFT JOIN monitor_creator_stat st + ON st.id = (SELECT s.id FROM monitor_creator_stat s + JOIN monitor_task t2 ON t2.id = s.task_id + WHERE t2.platform = 'dy' AND s.creator_hash = n.creator_hash + ORDER BY s.captured_at DESC, s.id DESC LIMIT 1) +LEFT JOIN monitor_creator_alias ca + ON ca.platform = 'dy' AND ca.creator_hash = n.creator_hash +WHERE t.platform = 'dy' + AND n.published_at >= (UNIX_TIMESTAMP() - 7 * 86400) * 1000 +ORDER BY n.published_at DESC;