php - 显示最受欢迎/查看次数最多的文章 - 按时间划分

标签 php mysql

我有一个新闻网站

在主页上我想列出过去 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/

相关文章:

PHP:foreach 主体中的操作会被多次调用吗?

php - 从 JOIN 查询获取输出的问题

mysql - Lambda 函数向 RDS 插入数据时出现 ETIMEDOUT

php - eval 函数访问数组时出现解析错误

php - 如果所有行都显示负载底部,请删除负载底部

javascript - window.history.pushState 刷新浏览器

php - Laravel 查询生成器,调用 count() 时使用自定义选择

php - 在函数内选择在函数外使用

php - 为什么 SQL INNER JOIN 无论条件如何都会返回所有记录

php - 计算特定日期后的周数