【发布时间】:2015-10-14 16:27:29
【问题描述】:
我已经编写了从订单日期到发送日期的平均持续时间的 SQL 查询。这是我的电子商务项目。但我想和上个月比较一下。
SELECT AVG(DATEDIFF(os.time, o.ordered)) AS average_value,
YEAR(os.time) AS groupYear,
MONTH(os.time) AS groupMonth
FROM orders AS o
LEFT JOIN order_status_history os ON o.id = os.order_id
WHERE os.status_id = 2
GROUP BY groupyear, groupmonth
我也想选择上个月的平均值。我已经尝试使用 ON -1 个月的 LEFT JOIN。但它显示了不好的值,所以这可能不是正确的方法。
o.ordered 和 os.time 都是 Datetime。
感谢大家的帮助。
【问题讨论】:
-
将 os.status_id = 2 条件移动到 ON 子句以获得真正的左连接行为!现在它作为常规内部连接执行...
-
好吧,搬家了。谢谢...但这并不能解决我的问题。
-
是来自时间戳类型的 os.time 吗?
-
不,o.ordered 和 os.time 都是日期时间。