切换产品查询

时间:2014-07-04 06:41:12

标签: sql oracle

我试图形成一个query,它应该确定给我一个在几个月内进行产品转换的客户列表。 我的数据集如下:

Transaction_ID  Customer    Product     Date
--------------  --------    --------    ------
1001            Cust1       Prod1       01-Jan-13
2234            Cust1       Prod2       15-Mar-13
2523            Cust1       Prod1       18-Mar-13
.................................................
8238            Cust1       Prod2       09-Jun-13
9127            Cust1       Prod2       18-Jun-13

它应该给我'Cust1'作为Cust1用于购买更多prod1然后切换到Prod2的{{1}}。我不确定是否应该使用自我加入。请帮忙。 (我使用的是Oracle 11G)

2 个答案:

答案 0 :(得分:0)

Select count(Product) from (select Customer, Product from Table group by Customer, Product) group by Customer

计数> 1 ==>他们做了一个转换。

答案 1 :(得分:0)

嗯,现在您减少了任务,例如简单地发现2013年1月至6月Prod1购买的客户占75%以上,2013年7月至12月购买Prod2的客户占75%以上,我们可以建立两个集并相交。

select customer
from transaction
where extract(year from tdate) = 2013 and extract(month from tdate) <= 6
group by customer
having sum(case when product = 'Prod1' then 1 end) / count(*) > 0.75
intersect
select customer
from transaction
where extract(year from tdate) = 2013 and extract(month from tdate) > 6
group by customer
having sum(case when product = 'Prod2' then 1 end) / count(*) > 0.75