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

Impala - How to query cumulative distinct number of product sold over time?

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

所以我有一个 table:

而且我想了解如何获得随时间推移(从 2020 年 12 月 1 日到 12 月 3 日)售出的不同产品的数量。

所以第一天我们卖出了两种产品(product_id 1 和 2),第二天我们卖出了与前一天相同类型的产品,因此累计仍然是 2 和最后一天我们卖出了一个两天前没有卖出去的产品,所以第3天累计卖出了3种产品

提前致谢!

简单汇总得到第一次售出的东西,然后做简单的汇总和累加:

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