我在下表中有一些记录。
product_id produced_date expired_date
123 2010-02-01 2012-05-31
234 2013-03-01 2014-08-04
345 2012-05-01 2018-02-25
... ... ...
我希望输出显示我们目前每月有多少未过期产品。(例如,如果产品在2004年8月到期,我们仍将其计入8月库存)
Month n_products
2010-02-01 10
2010-03-01 12
...
2022-07-01 25
2022-08-01 15
我应该如何在Presto或Hive中做到这一点?非常感谢。
2条答案
按热度按时间fwzugrvs1#
您可以使用下面的SQL。
这里我们使用
case when
来检查产品是否过期(e1d1e),如果产品已过期,我们将其相加以获得已过期产品的计数。然后对到期月份的数据进行分组。jpfvwuh42#
我们可以使用unnest和sequence函数来创建派生表;将我们的表与这个派生表连接起来,应该可以得到所需的结果。