老化に基づいて「対数」スコア減衰を実装したいのですが、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 句についてあまり気にしていません。それはとても簡単です。私が理解しようとしているのは、対数老化部分です。