2013-03-25 79 views
0

我在我的數據庫中有兩個表。另一個表中的值不在GROUP(SQL服務器)

首先表

 
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; 

我不認爲我使用GROUP BY有效。有人可以幫我解決這個問題嗎?

我遇到的問題是彙總所有值(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 

感謝。

回答

1

你查詢產生的cartisian產品兩張桌子,因爲from FirstTable t1, SecondTable t2JOIN他們代替:

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; 
+0

感謝它現在的作品。 – Huzaifa 2013-03-25 14:29:14

+0

@John - 隨時歡迎您:) – 2013-03-25 14:31:06

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 

爲了進一步獲得更多的知識有關加入,請訪問以下鏈接:

+0

太棒了。謝謝。 – Huzaifa 2013-03-25 14:30:56

相關問題