2014-03-19 50 views
1

我有一個表,其中有兩列A和B,它們表示兩者之間的連接圖。SQL:如何計算列B中列A的實例

A B 

1 3 
2 5 
4 2 
3 5 
2 3 

我需要找到在B列多少塔A的實例的發生(包括0)

因此,對於上面的例子中我需要將結果集

A OccurencesInB 

1 0 
2 1 
3 2 
4 0 

最好我到目前爲止是

SELECT B, COUNT(*) AS TABLE_COUNT 
FROM TABLE 
GROUP BY B 
ORDER BY TABLE_COUNT DESC 

這沒有找到A的實例不會發生在B,這是CR ucial。 任何援助將不勝感激!

+0

複製? http://stackoverflow.com/a/3597603/12802 – catfood

回答

0

使用相關子查詢:

SELECT A, 
     TABLE_COUNT = (SELECT COUNT(*) 
         FROM TableName t2 
         WHERE t2.B = t1.A) 
FROM TableName t1 
GROUP BY A 
ORDER BY TABLE_COUNT DESC, A 

結果:

A TABLE_COUNT 
3 2 
2 1 
1 0 
4 0 
+0

完美!謝謝 – NMarshallx86

相關問題