Oracle / SQL:将两个相互关联的列表拆分为独立的同类群组

时间:2014-09-11 01:11:03

标签: sql oracle11g

假设我有一个表TB1,对于定义的条件,下面的列表是唯一的。 产品和电子邮件是多对多的关系。

我打算对消费者购买的产品进行调查。

Product   Email  
TV        a@server.com  
Fridge    a@server.com 
Fridge    b@server.com 
TV        c@server.com  
Cooler    c@server.com

要求是:

  1. 无法将每个产品分配到2个调查。每项调查都可能有多种产品。购买此产品的所有客户都应在同一调查中。

  2. 无法将每位客户分配到2次调查。每项调查都可以分配多封电子邮件。每项调查都会发送给一个人,询问您对所列产品的喜好程度。

  3. 此列表很大。问题是电子邮件服务器只能处理,比如一次发送3000封电子邮件。如果要发送7000封独特的电子邮件(每封电子邮件询问客户购买的所有产品的问题),则需要创建三个SurveyID。这并不意味着每封邮件都有3000封,但必须符合要求1和2.

  4. 注意:每位客户最多可以购买10种产品。

    问题:如何找出独立于其他群组的(产品,电子邮件)对的群组,以便使用ORACLE功能可以实现所有这三个要求?

    在上面的场景中,所有记录都在一个队列中。他们要么一起去,要么 不去任何地方。

    这只是我解决这个难题的想法。如果还有其他更好的主意,请告诉我。

    非常感谢!

0 个答案:

没有答案