Алгоритм Априори -Найдите 2 комбинации - PullRequest
0 голосов
/ 25 апреля 2011

У меня есть таблица Order, как это:

   ORDER_ID PRODUCT_ID
     1        1230
     1        1231
     1        1232
     2        1231
     2        2000
     3        1230
     3        3567

и таблица Product:

  PRODUCT_ID NAME
   1230       A
   1231       B
   1232       C

Мой первый вопрос, как получить комбинацию из 2 Таблицы продуктовтогда какой должна быть моя новая структура таблицы?

например;

{1230,1231}, {1230,1232}, {1231,1232} 

но я не хочу этого {1231,1230}, потому что он уже добавлен.

Второй, в таблице Order, яДержите проданный продукт за одну сессию.Каким будет мой новый стол?

пример;

orderid     products
1          {1230,1231,1232}

Наконец, я хочу найти продукт, продаваемый вместе с поддержкой, exp: {1231,1230} count : 2 {1230,1232 count : 0 }

заранее спасибо.

edit: я хочу сделать так:http://webdocs.cs.ualberta.ca/~zaiane/courses/cmput499/slides/Lect10/sld054.htm

Ответы [ 2 ]

2 голосов
/ 25 апреля 2011

Если я правильно истолковал ваше требование?

;WITH T(P1, P2, ORDER_ID)
     AS (SELECT p1.PRODUCT_ID,
                p2.PRODUCT_ID,
                O.ORDER_ID
         FROM   Product p1
                JOIN Product p2
                  ON p1.PRODUCT_ID < p2.PRODUCT_ID
                JOIN [ORDER] o
                  ON o.PRODUCT_ID IN ( p1.PRODUCT_ID, p2.PRODUCT_ID )
         GROUP  BY p1.PRODUCT_ID,
                   p2.PRODUCT_ID,
                   O.ORDER_ID
         HAVING COUNT(*) = 2)
SELECT P1,
       P2,
       COUNT(*) AS Cnt
FROM   T
GROUP  BY P1,
          P2  
0 голосов
/ 25 апреля 2011

Я не совсем понимаю вопросы 2 или 3, поэтому, пожалуйста, уточните свой вопрос.

Первый вопрос сложный, но я думаю, что вы ищете что-то вроде этого:

SELECT * FROM products p1, products p2 GROUP BY ((p1.PRODUCT_ID*p2.PRODUCT_ID)+p1.PRODUCT_ID+p2.PRODUCT_ID)

Потому что он будет группировать по строкам только там, где два числа одинаковы, без заботы о порядке.Возможно, есть более элегантный способ создания уникального идентификатора для этой комбинации, но я не могу придумать ни одного.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...