在SQL中的聚合函数中应用行上行条件逻辑

时间:2018-04-09 16:14:17

标签: mysql

我有两个表存储在MySQL数据库中。第一个包含我想要明天销售的SKU的定价信息。第二个包含SKU的历史销售和访问数据。我想要做的是根据明天的指定价格的先前销售数据计算明天定价表中指定价格的每个SKU的转换率(订单除以访问次数),条件是该价格的SKU至少有100次访问或50次访问和1次订单,如果没有,那么我希望它从下一个最高价位添加访问和订单。

我创建了一个包含SQL小提琴中的示例数据的表

http://www.sqlfiddle.com/#!9/bf4273

使用sqlfiddle中的示例数据,我想要返回的是

ABC1, 100.0, 100, 0
ABC2, 75.0, 24, 0
ABC3, 35.0, 1312, 57
ABC4, 190, 55, 1
ABC5, 250, 72, 1
ABC6, 250.0, 80, 1

如果您检查sql小提琴中的数据,您可以看到ABC1不符合指定的100美元价格点的计数要求,因此它会从下一个更高的价格点汇总访问量,在这种情况下110,但保持报告的价格为100。

ABC2没有以指定价格进行足够的访问,但是在任何其他价格点上没有任何访问高于指定价格,因此它只返回24和0次访问。

ABC3符合要求,因此只返回指定值

ABC4符合> 50次访问> 1次销售,所以它已退回

ABC5没有足够的指定价格的访问量和订单,因此它总结了访问量和订单以包含下一个最高价格点。如果累计到下一个最高价格点仍然不满足100次访问或50次访问和1次订单的要求,则再次重新应用此逻辑。

ABC6类似于ABC5,但现在ABC6明天的指定价格点的订单为零,但我们仍然从下一个最高价位点接受订单数量(例如我们总结下次访问和订单)最高价格点,直到我们满足必要的访问和/或订单要求)。

目前我已经在Python中应用了这个逻辑,但它有点麻烦,如果可能的话我想在SQL中使用它。有人可以帮忙吗?即使告诉我在MySQL中不可能这样做也会受到重视。

谢谢, 布拉德

0 个答案:

没有答案