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

问题描述

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

所以我有一张桌子:

enter image description here

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

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

enter image description here

谢谢!

解决方法

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

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来输入所有日期。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...