Sql server 在SQL Server中插入查询
我有这个表Sql server 在SQL Server中插入查询,sql-server,apriori,Sql Server,Apriori,我有这个表TAB ID | Trans ------------ 1 | 99 2 | 99 3 | 99 2 | 90 4 | 22 4 | 22 2 | 99 2 | 90 我想得到一个id中同时出现的trans的计数,例如整个表中的“1有90&99”和“2有90&99”,因此计数为2。这类似于Apriori算法的第三步 我试过了,但没用- select count(trans) from Tab where trans = 99 &
TAB
ID | Trans
------------
1 | 99
2 | 99
3 | 99
2 | 90
4 | 22
4 | 22
2 | 99
2 | 90
我想得到一个id中同时出现的trans的计数,例如整个表中的“1有90&99”和“2有90&99”,因此计数为2。这类似于Apriori算法的第三步
我试过了,但没用-
select
count(trans)
from
Tab
where
trans = 99 & 90
group by
ID
having
ID = 2
我期望Trans-90和99的ans是
Trans1 | Trans2 |支架
------------
90 | 99 | 1
我还想将其插入一个新表。如果我正确理解了您的问题,您可以使用
SUM(CASE WHEN…END)
进行此操作:
DECLARE
@trans1 INT = 99,
@trans2 INT = 90
SELECT
ID,
PairCount =
CASE
WHEN SUM(CASE WHEN Trans = @trans1 THEN 1 ELSE 0 END) >= SUM(CASE WHEN Trans = @trans2 THEN 1 ELSE 0 END)
THEN SUM(CASE WHEN Trans = @trans2 THEN 1 ELSE 0 END)
ELSE SUM(CASE WHEN Trans = @trans1 THEN 1 ELSE 0 END)
END,
Trans1 = SUM(CASE WHEN Trans = @trans1 THEN 1 ELSE 0 END),
Trans2 = SUM(CASE WHEN Trans = @trans2 THEN 1 ELSE 0 END)
FROM DS
WHERE Trans IN (@trans1, @trans2)
GROUP BY ID
结果
ID PairCount Trans1 Trans2
----------- ----------- ----------- -----------
1 0 1 0
2 2 2 2
3 0 1 0
预期的结果是什么?请尝试为您的问题找到一个更合适的标题。据我所见,它与插入无关。为什么是“插入查询”?在任何地方都看不到
INSERT
。。我是这里唯一一个完全不理解这个问题的人吗?@Jens:为什么ID应该是唯一的?这可能是另一个表的外键(例如1:many关系)。