MySQL:ORDER BY stat/age?

JD *_*cks 0 mysql sql sql-order-by

我的产品表中有一个 int字段,product_stat每次查看产品时都会增加.我还有一个名为的日期字段product_date_added.

为了计算产品每天的平均访问量,您需要使用当前日期和产品添加日期来计算产品存在的天数.然后将产品统计除以其存在的天数以获得每天的平均访问量.

好的但我想做的是选择一些产品并按每天访问量排序 DESC

我怎样才能做到这一点?

谢谢!!!

Ric*_*ams 5

这样的事情可以解决问题,使用DATEDIFF获取两个日期之间的差异,然后将product_stat列除以该差异.

SELECT 
    p.*, 
    p.product_stat/DATEDIFF(CURDATE(),p.product_date_added) as visits_per_day
FROM products p
ORDER BY visits_per_day DESC
Run Code Online (Sandbox Code Playgroud)

虽然注意到DATEDIFF仅在MySQL 4.1.1中出现.如果您使用的是早期版本,则应该执行" TO_DAYS(CURDATE()) - TO_DAYS(p.product_date_added)".


Yad*_*ada 5

你会想要这样的东西:

SELECT product_name, 
product_stat / datediff(now(), product_date_added) as 'VisitPerDay'
FROM product
ORDER by VisitPerDay DESC
Run Code Online (Sandbox Code Playgroud)