在my blog上,我在右侧导航栏中显示了页面点击量方面的10个最热门文章。以下是我得到那个:在MySQL中每天计算页面点击次数的最佳方法是什么
SELECT *
FROM entries
WHERE is_published = 1
ORDER BY hits DESC, created DESC
LIMIT 10
我想要做的是显示页面的排名前10位命中每天。我正在使用MySQL。有没有办法在数据库中做到这一点?
顺便说一句,该created
字段是日期时间。
更新:我想我还没有明确表态。我想要的是,在1,000天前发布的具有10,000次点击次数的博客帖子与1天前发布的具有10次点击次数的博客帖子具有相同的流行度。在伪代码:
ORDER BY hits/days since posting
...其中hits
仅仅是在每个博客文章被视为一次增加一个int。
好吧,这里我会使用什么:
SELECT *, AVG(
hits/DATEDIFF(NOW(), created)
) AS avg_hits
FROM entries
WHERE is_published = 1
GROUP BY id
ORDER BY avg_hits DESC, hits DESC, created DESC
LIMIT 10
谢谢,史蒂芬! (我喜欢这个网站...)
这是正确的想法,但我不想要命令由avg_hits? – 2008-11-02 00:24:04
是的,我在过去的5分钟里有5个答案,我似乎一直在忘记东西...... – 2008-11-02 00:25:40