2015-07-05 84 views
1

我試圖計算表中多個列的發生次數。所有值都是整數,所有數字在每一行中都是唯一的。 (即你不會得到發生在同一行中的兩個值)的表結構是:計算跨多列的發生次數

ID Number1 Number2 Number3 Number4 Number5 Number6 
--------------------------------------------------------- 
    11  6  4  5  9  8 
    6  9  11  5  3  15 
    8  5  9  11  4  6 
    4  11  17  3  7  1 

的預期結果會是這樣的:

Number Count 
-------------- 
11  4 
6  3 
4  3 
5  3 
9  3 
3  2 
8  2 
15  1 
17  1 
7  1 
1  1 

我用樞軸和各種嘗試在互聯網上找到的其他方法,但似乎無法使其正常工作。任何想法,這似乎是一個簡單的查詢,但我不能正確的。

回答

2

如果只有6列,那麼一個辦法可以做到這一點

select Number, count(*) From (select Number1 as Number from your_table 
union all 
select Number2 as Number from your_table 
union all 
select Number3 as Number from your_table 
union all 
select Number4 as Number from your_table 
union all 
select Number5 as Number from your_table 
union all 
select Number6 as Number from your_table) myTab 
group by Number;