【发布时间】:2018-07-04 11:26:07
【问题描述】:
我有一个包含产品名称、订单号和下订单时间的数据集。
prod_name,order_no,order_time
a,101,2018-05-01
a,102,2018-06-04
a,103,2018-05-03
b,104,2018-01-21
b,105,2018-01-11
我正在尝试构建一个报告,显示自第一次订购以来的时间(与当前时间相比),输出如下:
prod_name,time_since_first_sale,aging
a,64,Less than 3 months back
b,177,Less than 6 months back
下面是我正在使用的 SQL:
select DISTINCT b.prod_name,case when((CURRENT_TIMESTAMP - min(a.order_time))) < '90' THEN 'Less than 3 months'
when ((CURRENT_TIMESTAMP - min(order_time))) < '180' THEN 'Less than 6 months'
else 'Other' end as aging
from sales a, prod b where a.id=b.prod_id;
上面的SQL在执行时返回重复,相信它也考虑了sales表中的每个sale_id。我如何修改上述查询以使每个 prod_name 仅获取一条记录。但是,如果我删除 case 语句,则重复项不存在。任何人都可以帮助我做错什么导致这些重复。
我正在使用 Amazon Redshift 数据库。
谢谢..
【问题讨论】:
标签: sql case amazon-redshift