JD *_*cks 0 mysql sql sql-order-by
我的产品表中有一个 int字段,product_stat每次查看产品时都会增加.我还有一个名为的日期字段product_date_added.
为了计算产品每天的平均访问量,您需要使用当前日期和产品添加日期来计算产品存在的天数.然后将产品统计除以其存在的天数以获得每天的平均访问量.
好的但我想做的是选择一些产品并按每天的访问量排序 DESC
我怎样才能做到这一点?
谢谢!!!
这样的事情可以解决问题,使用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)".
你会想要这样的东西:
SELECT product_name,
product_stat / datediff(now(), product_date_added) as 'VisitPerDay'
FROM product
ORDER by VisitPerDay DESC
Run Code Online (Sandbox Code Playgroud)