我有一个用于此目的的数据探索器查询(该查询显示用户名以启用 CSV/群组/私信等功能):
-- 谁查看了此主题?https://meta.discourse.org/t/see-who-viewed-topic/29277/11
-- [params]
-- int :topic_id
SELECT tu.user_id, u.username, total_msecs_viewed/1000 AS seconds_viewed
FROM topic_users tu
JOIN users u ON tu.user_id = u.id
WHERE tu.topic_id = :topic_id
AND total_msecs_viewed > 0
GROUP BY tu.user_id, u.username, tu.total_msecs_viewed
ORDER BY tu.total_msecs_viewed desc
如果在你所处的上下文中公开电子邮件地址是可以接受的,那么我建议使用以下这个查询:
-- 谁查看了此主题?包含电子邮件。https://meta.discourse.org/t/see-who-viewed-topic/29277/11
-- [params]
-- int :topic_id
SELECT tu.user_id, email, total_msecs_viewed/1000 AS seconds_viewed
FROM topic_users tu
JOIN user_emails ue ON tu.user_id = ue.user_id
WHERE tu.topic_id = :topic_id
AND total_msecs_viewed > 0
GROUP BY tu.user_id, ue.email, tu.total_msecs_viewed
ORDER BY tu.total_msecs_viewed desc