c# - 如何在 T-SQL 语句中找到 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语句找到这个结果?

+-------------+-----------+-----------------+
| 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');

提前致谢。

最佳答案

你能推断出零吗?即我们可以说任何未列出的都是零吗?如果是这样:

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

输出:

PRODUCTID1  PRODUCTID2  SUPPORT
----------- ----------- -----------
1000        1001        2
1000        1002        1

关于c# - 如何在 T-SQL 语句中找到 Apriori 关联?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5883334/

相关文章:

c# - SignalR Core在Android客户端上断开连接

c# - Entity Framework 插入新行而不是更新它们

php - MYSQL-在主表和子表中创建和存储主键

sql - DATEDIFF 将分钟转换为十进制

SQL:级联 "insert"并在更新时插入(如果不存在)

c# - SQL Server-枢轴

sql - 如何在 T-SQL 中使用 group by 和 union

c# - 在 List<T>.Sort() 方法中,项目是否与自身进行了比较?

C# 定义方法后更改方法时遇到问题

sql - SSIS 包在服务器上运行,但不是作为计划作业(SQL 代理)