我有一个新闻网站
在主页上,我想列出过去7天内观看次数最多的4篇文章
我有一张桌子,文章:id,title,body,publishTime,viewCount ......
我不能按照查看次数的顺序显示前4位,因为它已经显示的时间越长,它通常会有更多的视图。 所以我需要按小时显示视图
所以我的查询需要在过去168小时内获取所有文章,将每个观看次数除以显示的小时数,然后只显示前4位
是否可以使用命令执行此操作,还是需要创建某种虚拟表?
(使用php& mysql)
感谢
答案 0 :(得分:2)
根据我们在评论中的讨论,您似乎不是在“过去7天内观看次数最多的文章”之后,而是“ 4篇平均成绩最高的文章过去7天内发布的观看率“。这可以通过以下方式实现:
SELECT *
FROM Articles
WHERE publishTime > CURRENT_TIME - INTERVAL 7 DAY
ORDER BY viewCount / (UNIX_TIMESTAMP() - UNIX_TIMESTAMP(publishTime)) DESC
LIMIT 4