我的数据库中有两个表。
第一张表
ID | Count of ID's ------------------ 1 | 2 2 | 3 3 | 4 4 | 1 5 | 3
第二张表
ID | Count of ID's ------------------ 1 | 1 2 | 2 3 | 3 4 | 5 5 | 7
现在,我想将ID的计数从第一表划分为第二表,然后按第一个表的ID进行分组。
基本上预期的输出是
ID | Entropy ------------------ 1 | 2 2 | 1.5 3 | 1.3 4 | 0.2 5 | 0.42
我的查询:
Select t1.ID, Sum(t1.[Count of ID's]/t2.[Count of ID's])
from FirstTable t1, SecondTable t2
group by t1.ID;
我认为我没有有效地使用该组。有人可以帮帮我吗?
我遇到的问题是总和是聚合所有值(2 + 1.5 + 1.3 + 0.2 + 0.42 = 5.42)并显示每个ID。
电流输出(错误的一个)
ID | Entropy ------------------ 1 | 5.42 2 | 5.42 3 | 5.42 4 | 5.42 5 | 5.42
感谢。
答案 0 :(得分:1)
您需要定义用于在ON
子句中定义其关系的列。
SELECT a.ID,
a.[Count of IDs] * 1.0 / b.[Count of IDs] * 1.0 Entropy
FROM FirstTable a
INNER JOIN secondTable b
ON a.ID = b.ID
要进一步了解联接,请访问以下链接:
答案 1 :(得分:1)
由于from FirstTable t1, SecondTable t2
,您的查询会生成两个表的笛卡尔积。 JOIN
他们改为:
Select t1.ID, Sum(1.0 * t1.[Count of ID's]/t2.[Count of ID's]) AS Entropy
from FirstTable t1
INNER JOIN SecondTable t2 ON t1.id = t2.id
group by t1.ID;