我想实现一个基于老化的“对数”分数衰减,我试图找出 SUM/LOG 组合。在这里,您有当前查询的简化版本:
SELECT SUM(1) as total_score FROM posts
JOIN votes ON votes.post_id = posts.post_id
WHERE 1
GROUP BY post_id
ORDER BY total_score DESC
我目前正在执行 SELECT 'SUM(1) as total_score' 但我想修改查询以考虑投票的日期/年龄;今天的投票权重为 1,15 天前的投票权重接近 0.8,30 天前的投票权重接近 0。我将投票表 (vote_date) 中的日期字段存储为 unix_timestamp。
我并不真正关心 WHERE 条款;这很简单。我想弄清楚的是对数老化部分。