Impala-如何查询一段时间内累计销售的产品的不同数量?

时间:2020-08-11 04:04:03

标签: sql impala cumulative-sum

刚开始在Impala中学习sql查询,但我仍然不知道如何获得所需的结果。

所以我有一张桌子:

enter image description here

我想了解如何获得随时间推移(从2020年12月1日至2020年12月3日)销售的独特产品的数量。

因此,第一天我们卖出2种类型的产品(product_id 1和2),第二天我们卖出同一类型的产品(与前一天相比),因此累计为2,而最后一天我们卖出了两天前未售出,因此在第三天累计将售出3种产品

enter image description here

谢谢!

1 个答案:

答案 0 :(得分:1)

只需进行汇总即可获得首次出售的商品,然后进行简单的汇总和累计金额:

select min_sold_date, sum(count(*)) over (order by min_sold_date)
from (select product_id, min(sold_date) as min_sold_date
      from t
      where sold_date >= ? and sold_date <= ?
      group by product_id
     ) t
group by min_sold_date;

对于您的示例数据,这将不包括12月2日。我猜这在您的真实数据中不是问题。如果是这样,则可以使用left join来输入所有日期。