0

ユーザーが検索してから過去 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 時間) を引いて計算し、結果を得ました。まだ改善できると思われる場合は、私に提案してください。

4

1 に答える 1

1
SELECT  *, complex_formula
FROM    posts
WHERE   upvotes + downvotes > 0
        AND ts BETWEEN UNIX_TIMESTAMP($user_time - INTERVAL 1 DAY) AND UNIX_TIMESTAMP($user_time)
于 2013-04-04T07:32:58.697 に答える