2 つの選択の平均時間を取り、それらを返して、最後の注文から経過した時間の割合を確認しようとしています。理由が気になる場合は、早期警戒システムの一部です。
Select 1 は、(ほぼ) 最新の日時のうち 5 つを取得し、たとえば最後に注文された製品のいくつかの平均を取得するために 2 ~ 6 を記録します。
Select 2 (機能しているとは思わない) は、現在の注文と NOW() の平均を取り、最後の注文からの経過時間を確認します。
返品は、最近の注文から最後の注文までの平均時間です。私のコードには明らかにいくつかのバグがあり、動作させることができません...
わかりません、私
UNION()
が2番目を失敗したか、混乱させたかのように、いくつかの明白なことが突き出ていることを願っています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;