【问题标题】:MySQL: ORDER BY stat / age?MySQL:按统计/年龄排序?
【发布时间】:2010-01-07 21:29:58
【问题描述】:

我的产品表中有一个名为 product_statint 字段,每次查看产品时都会递增。我还有一个名为 product_date_added日期 字段。

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

好的,但我想做的是选择一些产品并按每天访问次数订购它们DESC

我该怎么做?

谢谢!!!

【问题讨论】:

    标签: sql mysql sql-order-by


    【解决方案1】:

    这样的事情应该可以解决问题,使用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
    

    虽然请注意 DATEDIFF 仅在 MySQL 4.1.1 中出现。如果您使用的是早期版本,则应改为“TO_DAYS(CURDATE()) - TO_DAYS(p.product_date_added)”。

    【讨论】:

      【解决方案2】:

      你会想要这样的东西:

      SELECT product_name, 
      product_stat / datediff(now(), product_date_added) as 'VisitPerDay'
      FROM product
      ORDER by VisitPerDay DESC
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-06-28
        • 2019-02-23
        • 2015-01-17
        • 2017-12-31
        • 1970-01-01
        • 2022-01-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多