ユーザーが検索してから過去 24 時間の投票に基づいて関連するコンテンツを計算するために、平均評価で並べ替えない方法から取得した Wilson Score Confidence で次のクエリを使用したいと考えています。フィールドに格納されている UNIX タイムスタンプがありますが、datetime
タイプではありません。
クエリは次のとおりです。
SELECT p.id, p.post, p.upvotes, p.downvotes, ((upvotes + 1.9208) / (upvotes + downvotes) -
1.96 * SQRT((upvotes * downvotes) / (upvotes + downvotes) + 0.9604) /
(upvotes + downvotes)) / (1 + 3.8416 / (upvotes + downvotes))
AS ci_lower_bound FROM posts p WHERE upvotes + downvotes > 0
ORDER BY ci_lower_bound DESC;
過去 24 時間に投稿されたトップ コンテンツを取得する必要があります。を使用して追加のWHERE
条件を設定する必要があることはわかってBETWEEN
いますが、方法がわかりませんか?
助けてください。
更新以下の回答と微調整に基づいて、次のようなものを作成しました。
SELECT p.id, p.post, p.upvotes, p.downvotes, ((upvotes + 1.9208) / (upvotes + downvotes) - 1.96 * SQRT((upvotes * downvotes)
/ (upvotes + downvotes) + 0.9604) / (upvotes + downvotes))
/ (1 + 3.8416 / (upvotes + downvotes)) AS ci_lower_bound
FROM posts p WHERE upvotes + downvotes > 0
AND p.unix_timestamp BETWEEN 1363023402 AND 1363109802 ORDER BY ci_lower_bound DESC
最初の値は、現在のタイムスタンプから 86400 秒 (つまり 24 時間) を引いて計算し、結果を得ました。まだ改善できると思われる場合は、私に提案してください。