C# 如何在T-SQL语句中找到Apriori关联?
数据库:C# 如何在T-SQL语句中找到Apriori关联?,c#,sql-server,tsql,apriori,C#,Sql Server,Tsql,Apriori,数据库: Transaction ProductID 1 1000 2 1000 2 1001 3 1000 3 1002 4 1000 4 1001 5 1003 在上表中,如何使用T-SQL语句查找此结果 +-------------+-----------+---
Transaction ProductID
1 1000
2 1000
2 1001
3 1000
3 1002
4 1000
4 1001
5 1003
在上表中,如何使用T-SQL语句查找此结果
+-------------+-----------+-----------------+
| PRODUCTID1 | PRODUCTID2| SUPPORT |
+-------------+-----------+-----------------+
| 1000 | 1001 | 2 |
+-------------+-----------+-----------------+
| 1000 | 1002 | 1 |
+-------------+-----------+-----------------+
| 1000 | 1003 | 0 |
+-------------+-----------+-----------------+
| 1001 | 1002 | 0 |
+-------------+-----------+-----------------+
| 1001 | 1003 | 0 |
+-------------+-----------+-----------------+
| 1002 | 1003 | 0 |,
+-------------+-----------+-----------------+
测试表:
create table transactions(
ORDERID INT,
PRODUCTID INT
);
insert into transactions(ORDERID, PRODUCTID)
values ('1', '1000')
,('2', '1000')
,('2', '1001')
,('3', '1000')
,('3', '1002')
,('4', '1000')
,('4', '1001'),
('5', '1003');
提前谢谢。你能推断出零吗?i、 我们能不能说没有列出的东西都是零?如果是:
select t1.PRODUCTID as [PRODUCTID1], t2.PRODUCTID as [PRODUCTID2],
COUNT(1) as [SUPPORT]
from transactions t1 inner join transactions t2
on t1.ORDERID = t2.ORDERID
and t1.PRODUCTID < t2.PRODUCTID
group by t1.PRODUCTID, t2.PRODUCTID
我还想知道一件事。如何找到这个3的组合。根据您的结果(第一排);{100010011002}和{100010011003}@wide-您可以尝试使用相同的模式在第二个连接中进行重击-但它开始变得混乱。确实,您需要给出具体的数据示例来检查结果(目前没有跨越3个事务)是的,但示例数据集喜欢我的大数据库结构。我的数据库包含2,3,4个产品,它们一起销售。我不知道怎么做。我正在实现Apriori算法。@marc_s:Apriori是OP想要使用的算法的名称:
PRODUCTID1 PRODUCTID2 SUPPORT
----------- ----------- -----------
1000 1001 2
1000 1002 1