我有一个新闻网站
在主页上我想列出过去 7 天内浏览次数最多的 4 篇文章
我有一个表格,文章:id、标题、正文、发布时间、viewCount...
我不能只按照观看次数的顺序显示前 4 名,因为它发布的时间越长,通常观看次数就越多。 所以我需要按显示的小时数划分 View
所以我的查询需要获取过去 168 小时内的所有文章,将每个浏览次数除以显示的小时数,然后只显示前 4 篇
是否可以仅使用命令来完成此操作,或者我是否需要创建某种虚拟表?
(使用 php 和 mysql)
谢谢
最佳答案
根据我们在评论中的讨论,您似乎并不是在寻找“过去 7 天内浏览次数最多的 4 篇文章”,而是“平均值最高的 4 篇文章”过去 7 天内发布的观看率”。这可以通过以下方式实现:
SELECT *
FROM Articles
WHERE publishTime > CURRENT_TIME - INTERVAL 7 DAY
ORDER BY viewCount / (UNIX_TIMESTAMP() - UNIX_TIMESTAMP(publishTime)) DESC
LIMIT 4
关于php - 显示最受欢迎/查看次数最多的文章 - 按时间划分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23188385/