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