【发布时间】:2020-03-25 18:30:21
【问题描述】:
能否请我就如何在 Presto SQL 中仅通过在 b 列中具有所有值的值(来自 a 列)进行过滤提供一些指导?
因此,我希望在promotion_running_days 列中按日期获取所有促销日(从1 到9)的所有product_id。
我尝试在 (1,2,3,4,5,6,7) 中使用 'promotion_running_days,但它也返回 product_ids 只有 2 或 3 个促销日。
使用这种查询方式:
SELECT
product_id
,date
,ROUND(MAX(DATE_DIFF('day', CAST(DATE_PARSE(promotion_start_date, '%Y-%m-%d %T') AS DATE), CAST(DATE_PARSE(date, '%Y-%m-%d') AS DATE))),0) AS promotion_running_days
,SUM(revenue) AS total_revenue
FROM product_db
WHERE
date between '2019-01-01' and '2019-01-07'
AND promotion_start_date>='2019-01-01'
Group by 1,2;
我希望我的输出如下所示:
Product Id |Date| |Promotion Running Days|
1 |2019-01-01| |1|
1 |2019-01-02| |2|
1 |2019-01-03| |3|
1 |2019-01-04| |4|
1 |2019-01-05| |5|
1 |2019-01-06| |6|
1 |2019-01-07| |7|
【问题讨论】: