我有一个sales
表4列:如何获得一列最低的MySQL表2列之间的平均差异?
id | item_id | department_id | bought_at | sold_at
所有列INT(11)
。
物品可以买所有的时间,但我想知道最快的平均销售为一个部门。每个物品,buy_at都是一样的。
任何建议如何在一个查询中这样做吗?
我有一个sales
表4列:如何获得一列最低的MySQL表2列之间的平均差异?
id | item_id | department_id | bought_at | sold_at
所有列INT(11)
。
物品可以买所有的时间,但我想知道最快的平均销售为一个部门。每个物品,buy_at都是一样的。
任何建议如何在一个查询中这样做吗?
我想以最快的帆,你的意思是stored_at
和sold_at
几乎相等。如果你想每个项目的最快销售的平均数量为一个部门,然后用下面的查询(假设department_id
为此我们想找到平均值为1
,还承担出售差额作为10
的阈值)
SELECT AVG(sales_count) average_sales FROM
(SELECT COUNT(*) AS sales_count
FROM sales
WHERE department_id = 1 AND (sold_at - stored_at) < 10
GROUP BY item_id
) counts
也许这项工作: -
select department_id, avg(sold_at-bought_at) as avg_time
from sales
group by department_id
order by avg_time;
GROUP BY之后不是ORDER BY吗? – Glooh 2011-12-20 12:19:44
我看到confuzing条款>>> stored_at意味着STORED IN WHEREHOUSE不在数据库中。 所以,以最快的销售额来说,我的意思是sold_at - stored_at = x,X是最低的数字。如果stored_at = sold_at,则该物品在我们拥有它的时刻就会出售。 – Glooh 2011-12-20 11:51:30
我已经编辑了stored_at到buy_at以使其更清晰 – Glooh 2011-12-20 11:53:59
@Glooh编辑了答案。您可以使用'(sold_at - stored_at)
Jomoos
2011-12-20 11:55:06