gpt4 book ai didi

mysql - 如何选择销量高于历史平均水平的商品

转载 作者:行者123 更新时间:2023-11-29 19:18:35 24 4
gpt4 key购买 nike

我想从已售商品中获得季节性 View ,这样我就可以知道哪些产品下个月会卖得更多(例如)。我希望将其与该产品的平均销售额进行比较

查询,用“人类的话”来说,会是这样的:

What are the produts which sales [next month, last year¹] increased compared to the historical avergage sales for this product

或者

What are the products which sales at april/2016 were bigger than the product's historical average sales

我想做的是发现哪些商品下个月会卖得更多,这样我就可以知道我应该购买多少。

我的方法是创建一个包含总销售额和平均销售额的 View ,然后进行如下查询:

SELECT 
s.ITEM_ID,
v.NAME,
SUM(s.SOLD_PRICE) AS TOTAL,
v.AVERAGE AS AVG_SALE
FROM
sales s
JOIN
view_averages v
ON
s.ITEM_ID = v.ITEM_ID
WHERE
MONTH(s.SALE_DATE) = 3 AND YEAR(s.SALE_DATE)= 2016 AND
TOTAL > AVG_SALE
GROUP BY
s.ITEM_ID
ORDER BY TOTAL DESC

但我不太确定这是否是最好的方法。

非常感谢任何意见,并提前致谢

最佳答案

另一种方法是以下查询

SELECT 
a.ITEM_ID,
a.NAME,
AVG(a.TOTAL_SALE) AVG_SALE,
SUM(IF(a.`year` = 2016 AND a.`month` = 3, a.TOTAL_SALE, 0)) AS TOTAL
FROM (
SELECT
s.ITEM_ID,
s.NAME,
YEAR(s.SALE_DATE) `year`,
MONTH(s.SALE_DATE) `month`,
SUM(s.SOLD_PRICE) AS TOTAL_SALE
FROM
sales s
GROUP BY
s.ITEM_ID,s.NAME, YEAR(s.SALE_DATE), MONTH(s.SALE_DATE)
) a
GROUP BY a.ITEM_ID
HAVING TOTAL > AVG_SALE
ORDER BY TOTAL DESC

对于此查询,它仅使用销售表一次,其中内部查询汇总有关销售的每月信息。然后,外部查询对所有每月销售总额进行平均,并仅保留特定月份的 MONTHLY SALE SUM > AVG SALE SUM

还需要考虑的一件事是,您是否只需要上个月之前的历史销售平均值,或者您是否想要您拥有数据的整个时间段的历史销售平均值。我所做的查询取您拥有数据的整个时间的平均值

关于mysql - 如何选择销量高于历史平均水平的商品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42565177/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com