1

我正在尝试获取两次选择的平均时间并返回它们以查看自上次订单以来经过的时间百分比。如果您想知道原因,它是早期警报系统的一部分。

选择 1 需要 5 个(几乎)最新的日期时间,例如记录 2-6 以获得一些最后订购产品的平均值。

选择 2(我认为它不起作用)取当前订单和 NOW() 的平均值,以查看自上次订单以来已经过去了多少时间。

回报应该是这些最近的订单和最后一个订单之间的平均时间。我的代码中显然有一些错误,无法让它工作......

我不知道,我希望有一些明显的东西会突出,比如我是如何搞砸 UNION()或混淆第二个的TIMESTAMPDIFF()

SELECT (spread + recent) / 2 AS lapse FROM 

    (SELECT TIMESTAMPDIFF(MINUTE, MIN(created_at), MAX(created_at) ) 
               /
               (COUNT(DISTINCT(created_at)) -1) 

          FROM (  SELECT created_at
            FROM dbname.sales_flat_order_status_history 
            ORDER BY created_at DESC LIMIT 5 OFFSET 1
             ) 

          AS created_at) AS spread,

UNION

    (SELECT TIMESTAMPDIFF(MINUTE, MIN(created_at), NOW() ) 
               /
               (COUNT(DISTINCT(created_at)) -1) 

          FROM (  SELECT created_at
            FROM dbname.sales_flat_order_status_history 
            ORDER BY created_at DESC LIMIT 1
             ) 

          AS created_at) AS recent;

ORDER BY lapse LIMIT 1;
4

0 回答 0