Files
MediaCrawler/docs/queries/recent-7-days-videos.sql
T
butubb 736ba9b12d
Deploy VitePress site to Pages / build (push) Canceled after 0s
Deploy VitePress site to Pages / Deploy (push) Canceled after 0s
docs: 最近七天视频的查询
2026-10-12 16:14:29 +08:00

42 lines
2.2 KiB
SQL

-- 最近七天发布的视频(抖音)。换平台把两处 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;