我有一张'TempC3'表
Itemset itemset2
1 3
2 3
2 5
3 5
我想要在这些列中组合元素而不重复。所以输出表应该是
Itemset itemset2 Itemset3
1 3 5
2 3 5
1 2 3
我设计了一个查询,但它不会返回所需输出表的最后一行 -
Select distinct a.Itemset,
a. Itemset2,
c.itemset2
from TempC3 a
Join TempC3 c
ON c.Itemset2 > a.Itemset2
此查询仅产生以下结果:
Itemset itemset2 Itemset3
1 3 5
2 3 5
答案 0 :(得分:1)
由于您需要项集的所有组合,因此必须先将输入表中的两列连接成一列。你可以这样做,例如,使用CTE:
WITH CTE AS (
SELECT Itemset FROM TempC3
UNION
SELECT Itemset2 FROM TempC3
)
SELECT I1.Itemset, I2.Itemset, I3.Itemset FROM CTE AS I1
INNER JOIN CTE AS I2 ON I2.Itemset > I1.Itemset
INNER JOIN CTE AS I3 ON I3.Itemset > I2.Itemset